ph8jPf9M wrote:Wings that work kinda like in minecraft this would make traveling easier.
D00Med wrote:ph8jPf9M wrote:Wings that work kinda like in minecraft this would make traveling easier.
Is this what you had in mind? https://forum.minetest.net/viewtopic.php?f=11&t=11257
GreenDimond wrote:D00Med wrote:ph8jPf9M wrote:Wings that work kinda like in minecraft this would make traveling easier.
Is this what you had in mind? https://forum.minetest.net/viewtopic.php?f=11&t=11257
I think a legit Elytra style wings would be better. It would be cool to be able to glide, and in other view modes have the player actually be horizontal with 3D wings.
D00Med wrote:making the player horizontal would be hard.
D00Med wrote:The gliding bit I can do
DS-minetest wrote:D00Med wrote:making the player horizontal would be hard.
hm, set the lay animation(x=162,y=167) and set the properties scale to y= -1, so that the player looks down
ABJ wrote:Factions? You mean cubic or chunk?
ABJ wrote:No I mean cubic or chunk protection. R E A D T H E P R E V I O U S P A G E
D00Med wrote:DS-minetest wrote:D00Med wrote:making the player horizontal would be hard.
hm, set the lay animation(x=162,y=167) and set the properties scale to y= -1, so that the player looks down
O.o would that actually work?
minetest.register_node("parachute:testnode", {
description = "parachute test",
tiles = {"default_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 2},
sounds = default.node_sound_wood_defaults(),
on_punch = function(pos, node, puncher, pointed_thing)
puncher:set_properties({visual_size = {x=-1, y=-1}}) --x=-1 because else the player would point towards the 3rd person camera and not the 2nd person camera
puncher:set_animation({x=162, y=167}, 0, 0)
end,
})
D00Med wrote:Thanks, I couldn't get that to happen!
TheStoneMason wrote:Hello,
I feel it curious : in game, we need to extract cobblestone and cooking it in a furnace, to get stone and to cut it in stone brick.
In real world, from middle age, we extracted directly stone block from stratum with tool called "taillant" or "laye" (i don't know english word, sorry), it's look like an axe. www.pierres-info.fr/taillant_a_pierre. This tool used to extract soft or hard stone : basalt, limestone, desert stone, etc.
I suggest to made a little mod with new tool to extract stone block. How can i do it ?
It would be a little more realistic.
Thank every body.
--
-- Tools / "Advanced" crafting / Non-"natural"
--
local function get_chest_neighborpos(pos, param2, side)
if side == "right" then
if param2 == 0 then
return {x=pos.x-1, y=pos.y, z=pos.z}
elseif param2 == 1 then
return {x=pos.x, y=pos.y, z=pos.z+1}
elseif param2 == 2 then
return {x=pos.x+1, y=pos.y, z=pos.z}
elseif param2 == 3 then
return {x=pos.x, y=pos.y, z=pos.z-1}
end
else
if param2 == 0 then
return {x=pos.x+1, y=pos.y, z=pos.z}
elseif param2 == 1 then
return {x=pos.x, y=pos.y, z=pos.z-1}
elseif param2 == 2 then
return {x=pos.x-1, y=pos.y, z=pos.z}
elseif param2 == 3 then
return {x=pos.x, y=pos.y, z=pos.z+1}
end
end
end
local function hacky_swap_node(pos,name, param2)
local node = minetest.env:get_node(pos)
local meta = minetest.env:get_meta(pos)
if node.name == name then
return
end
node.name = name
node.param2 = param2 or node.param2
local meta0 = meta:to_table()
minetest.env:set_node(pos,node)
meta = minetest.env:get_meta(pos)
meta:from_table(meta0)
end
minetest.register_node("default:chest", {
description = "Chest",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2},
legacy_facedir_simple = true,
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local param2 = minetest.env:get_node(pos).param2
local meta = minetest.env:get_meta(pos)
if minetest.env:get_node(get_chest_neighborpos(pos, param2, "right")).name == "default:chest" then
minetest.env:set_node(pos, {name="default:chest_right",param2=param2})
local p = get_chest_neighborpos(pos, param2, "right")
meta:set_string("formspec",
"size[8,11.5]"..
"background[-0.19,-0.25;9.41,12.2;large_chest_formspec.png]"..
"bgcolor[#080808BB;true]"..
"listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]"..
"image_button_exit[9,0;1,1;;exit;X;true;true;]"..
"list[nodemeta:"..p.x..","..p.y..","..p.z..";main;0,0;8,3;]"..
"list[current_name;main;0,3;8,3;]"..
"list[current_player;main;0,7.4;8,3;8]"..
"list[current_player;main;0,10.6;8,1;]")
meta:set_string("infotext", "Large Chest")
hacky_swap_node(p, "default:chest_left", param2)
local m = minetest.env:get_meta(p)
m:set_string("formspec",
"size[8,11.5]"..
"background[-0.19,-0.25;9.41,12.2;large_chest_formspec.png]"..
"bgcolor[#080808BB;true]"..
"listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]"..
"image_button_exit[9,0;1,1;;exit;X;true;true;]"..
"list[current_name;main;0,0;8,3;]"..
"list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0,3;8,3;]"..
"list[current_player;main;0,7.4;8,3;8]"..
"list[current_player;main;0,10.6;8,1;]")
m:set_string("infotext", "Large Chest")
elseif minetest.env:get_node(get_chest_neighborpos(pos, param2, "left")).name == "default:chest" then
minetest.env:set_node(pos, {name="default:chest_left",param2=param2})
local p = get_chest_neighborpos(pos, param2, "left")
meta:set_string("formspec",
"size[8,11.5]"..
"background[-0.19,-0.25;9.41,12.2;large_chest_formspec.png]"..
"bgcolor[#080808BB;true]"..
"listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]"..
"image_button_exit[9,0;1,1;;exit;X;true;true;]"..
"list[current_name;main;0,0;8,3;]"..
"list[nodemeta:"..p.x..","..p.y..","..p.z..";main;0,3;8,3;]"..
"list[current_player;main;0,7.4;8,3;8]"..
"list[current_player;main;0,10.6;8,1;]")
meta:set_string("infotext", "Large Chest")
hacky_swap_node(p, "default:chest_right", param2)
local m = minetest.env:get_meta(p)
m:set_string("formspec",
"size[8,11.5]"..
"background[-0.19,-0.25;9.41,12.2;large_chest_formspec.png]"..
"bgcolor[#080808BB;true]"..
"listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]"..
"image_button_exit[9,0;1,1;;exit;X;true;true;]"..
"list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0,0;8,3;]"..
"list[current_name;main;0,3;8,3;]"..
"list[current_player;main;0,7.4;8,3;8]"..
"list[current_player;main;0,10.6;8,1;]")
m:set_string("infotext", "Large Chest")
else
meta:set_string("formspec",
"size[8,8.3]"..
"background[-0.19,-0.25;9.41,9.2;chest_formspec.png]"..
"bgcolor[#080808BB;true]"..
"listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]"..
"image_button_exit[8.1,0;1,1;;exit;X;true;true;]"..
"list[current_name;main;0,0;8,3;]"..
"list[current_player;main;0,4.31;8,3;8]"..
"list[current_player;main;0,7.5;8,1;]")
meta:set_string("infotext", "Chest")
end
local inv = meta:get_inventory()
inv:set_size("main", 8*3)
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local meta = minetest.env:get_meta(pos)
local meta2 = meta
meta:from_table(oldmetadata)
local inv = meta:get_inventory()
for i=1,inv:get_size("main") do
local stack = inv:get_stack("main", i)
if not stack:is_empty() then
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
minetest.env:add_item(p, stack)
end
end
meta:from_table(meta2:to_table())
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos))
end,
on_receive_fields = function(pos, formname, fields, sender)
if fields.exit then
print('test')
fields.quit = true
end
end
})
minetest.register_node("default:chest_left", {
tiles = {"default_chest_top_big.png", "default_chest_top_big.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side_big.png^[transformFX", "default_chest_front_big.png"},
paramtype2 = "facedir",
groups = {choppy=2, oddly_breakable_by_hand=2,not_in_creative_inventory=1},
drop = "default:chest",
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
on_destruct = function(pos)
local m = minetest.env:get_meta(pos)
if m:get_string("infotext") == "Chest" then
return
end
local param2 = minetest.env:get_node(pos).param2
local p = get_chest_neighborpos(pos, param2, "left")
if not p or minetest.env:get_node(p).name ~= "default:chest_right" then
return
end
local meta = minetest.env:get_meta(p)
meta:set_string("formspec",
"size[9,8.5]"..
"image_button_exit[9,0;1,1;;exit;X;true;true;]"..
"list[current_name;main;0,0;9,3;]"..
"list[current_player;main;0,4;9,3;9]"..
"list[current_player;main;0,7.5.5;9,1;]")
meta:set_string("infotext", "Coffre")
hacky_swap_node(p, "default:chest")
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local meta = minetest.env:get_meta(pos)
local meta2 = meta
meta:from_table(oldmetadata)
local inv = meta:get_inventory()
for i=1,inv:get_size("main") do
local stack = inv:get_stack("main", i)
if not stack:is_empty() then
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
minetest.env:add_item(p, stack)
end
end
meta:from_table(meta2:to_table())
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos))
end,
})
minetest.register_node("default:chest_right", {
tiles = {"default_chest_top_big.png^[transformFX", "default_chest_top_big.png^[transformFX", "default_chest_side.png",
"default_chest_side.png", "default_chest_side_big.png", "default_chest_front_big.png^[transformFX"},
paramtype2 = "facedir",
groups = {choppy=2, oddly_breakable_by_hand=2,not_in_creative_inventory=1},
drop = "default:chest",
sounds = default.node_sound_wood_defaults(),
on_destruct = function(pos)
local m = minetest.env:get_meta(pos)
if m:get_string("infotext") == "Chest" then
return
end
local param2 = minetest.env:get_node(pos).param2
local p = get_chest_neighborpos(pos, param2, "right")
if not p or minetest.env:get_node(p).name ~= "default:chest_left" then
return
end
local meta = minetest.env:get_meta(p)
meta:set_string("formspec",
"size[9,8.5]"..
"image_button_exit[9,0;1,1;;exit;X;true;true;]"..
"list[current_name;main;0,0;9,3;]"..
"list[current_player;main;0,4;9,3;9]"..
"list[current_player;main;0,7.5.5;9,1;]")
meta:set_string("infotext", "Chest")
hacky_swap_node(p, "default:chest")
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local meta = minetest.env:get_meta(pos)
local meta2 = meta
meta:from_table(oldmetadata)
local inv = meta:get_inventory()
for i=1,inv:get_size("main") do
local stack = inv:get_stack("main", i)
if not stack:is_empty() then
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
minetest.env:add_item(p, stack)
end
end
meta:from_table(meta2:to_table())
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos))
end,
})
amadin wrote:I have working and tested code for Large chest (like in mc).
Hybrid Dog wrote:it also works for default locked chests
cx384 wrote:amadin wrote:I have working and tested code for Large chest (like in mc).
You mean something like this ?
viewtopic.php?t=10264Hybrid Dog wrote:it also works for default locked chests
mauvebic wrote:if someones willing to make the 3D models (nodebox) for new trees ill write the code. Im sick of square trees and trying to make em look different lol
ManElevation wrote:mauvebic wrote:if someones willing to make the 3D models (nodebox) for new trees ill write the code. Im sick of square trees and trying to make em look different lol
dude i can make 3d models if you want
casio33 wrote:Can anyone make a cross? I'm building a church and it would be nice to have one at the top of the tower.
Users browsing this forum: No registered users and 6 guests