Page 1 of 11
Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 09, 2014 08:58
by Ragnar
People, write here the stuff you would love to see in the version after 0.4.10.
My wish is a parameter for the player model transparency. =)
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 09, 2014 09:35
by Krock
It's not XMAS yet.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 09, 2014 09:38
by Ragnar
But that doesnt mean that we cant wish for stuffzs
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 09, 2014 09:58
by rubenwardy
Optimisation.
Higher FPS.
Less (visible) server lag.
Game play polish.
Longer term:
Client side API for Graphics, Sounds and client side prediction for mods.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 09, 2014 13:06
by Kilarin
There are several mods that use use the strategy of replacing an item in inventory in order to change the image for a tool. Screwdriver, clock, the compasses, bridgetool, etc. It's a hack, and a clumsy one in my opinion.
What I wish the brilliant devs could figure out how to do would be to allow a mod to override the image for a particular tool without having to replace it. It would be trivial to do it for the whole class of tools, but we need a way to modify the image for the particular compassgps, clock, or screwdriver that one player is carrying and not for every compassgps, clock or screwdriver in the game. And I'm afraid that might be complicated.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 09, 2014 15:29
by TenPlus1
I would really love for this to be possible in the next version:
https://forum.minetest.net/viewtopic.php?f=5&t=9568&hilit=alpha
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 09, 2014 18:37
by prestidigitator
Sounds to me like a possible application of a "standard"
metadata entry. Like formspec, infotext, and inventory are done for nodes. If the metadata entry didn't exist, the default texture/appearance would be used. Note that inventory items can have metadata too (see
ItemStack).
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Thu Jul 10, 2014 06:16
by JPRuehmann
Hello
I´d love to see the Map feature of gsmanners integrated.
till then,
JPR
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Thu Jul 10, 2014 06:17
by JPRuehmann
Hello
Change of the behaviour of the Enter Key in Formspecs would be lovely.
Thanks,
JPR
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Thu Jul 10, 2014 07:46
by Ragnar
If by that you mean having more control over the alpha channel (making the alpha channel a custom number) then i totally agree with you..
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Fri Jul 11, 2014 02:33
by HeroOfTheWinds
More efficient ABM's that cause less lag while playing on servers.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Fri Jul 11, 2014 08:30
by Krock
HeroOfTheWinds wrote:More efficient ABM's that cause less lag while playing on servers.
Explain please. Do you mean code cleanups?
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Fri Jul 11, 2014 13:27
by hoodedice
Krock wrote:HeroOfTheWinds wrote:More efficient ABM's that cause less lag while playing on servers.
Explain please. Do you mean code cleanups?
http://dev.minetest.net/minetest.register_abm
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Fri Jul 11, 2014 15:46
by rubenwardy
I am not sure what thread Lua is on, but Ithink that it should be on a thread that doesn't block how the server replies to the client. Slower reply times means more lag.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Fri Jul 11, 2014 17:13
by HeroOfTheWinds
Krock wrote:HeroOfTheWinds wrote:More efficient ABM's that cause less lag while playing on servers.
Explain please. Do you mean code cleanups?
More or less. Basically, any way to make the logic for triggering and threading them more efficient. Of course, one of the largest problems is how people usually code them, but....
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Sat Jul 12, 2014 21:48
by DS-minetest
I need seeds from dry shrub.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Tue Jul 15, 2014 03:54
by freejack
Would love to see lockable chests and doors without adding a mod......... Mods work till a point where they are not updated or what they depend on is not updated. It sucks.......
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Tue Jul 15, 2014 05:01
by kaeza
freejack wrote:Would love to see lockable chests and doors without adding a mod......... Mods work till a point where they are not updated or what they depend on is not updated. It sucks.......
Uhh... Locked chests and steel doors ("locked" doors) are part of the default game...
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Tue Jul 15, 2014 05:38
by freejack
sorry meant furnaces......... and I know steel doors I wanted wooden............I know picky....
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Tue Jul 15, 2014 09:29
by DS-minetest
freejack wrote:Would love to see lockable chests and doors without adding a mod......... Mods work till a point where they are not updated or what they depend on is not updated. It sucks.......
You cant play MT without mods.
If you think, you have no mod installed, say "/mods".
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Tue Jul 15, 2014 09:44
by freejack
I know I have mods....... I am saying it would be nice to have this in the API
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Tue Jul 15, 2014 12:45
by Wuzzy
This is way too high level to deserve dedicated API calls for that.
But the doors mods of minetest_game provides some utility functions. Look for doors.register_door in the source code.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Tue Jul 15, 2014 16:27
by rubenwardy
There is no reason not to install mods. Also, quite a lot of mods written two years ago still work. Not a low of the API has changed.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Tue Jul 15, 2014 20:35
by Mg
Hello everyone,
I would like to add (in version 0.4.11, or 0.5, if it's possible) :
- Extinguish fire with water
- Enable/Disable fire (burning of flammable nodes) in minetest.conf
(Here is a modified version of fire mod :
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
-- minetest/fire/init.lua
minetest.register_node("fire:basic_flame", {
description = "Fire",
drawtype = "plantlike",
tiles = {{
name="fire_basic_flame_animated.png",
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1},
}},
inventory_image = "fire_basic_flame.png",
light_source = 14,
groups = {igniter=2,dig_immediate=3,hot=3},
drop = 'fire:basic_flame',
walkable = false,
buildable_to = true,
damage_per_second = 4,
})
if minetest.setting_getbool("fire") == nil or minetest.setting_getbool("fire") == true then
minetest.register_node(":fire:basic_flame", {
after_place_node = function(pos, placer)
fire.on_flame_add_at(pos)
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
fire.on_flame_remove_at(pos)
end,
})
fire = {}
fire.D = 6
-- key: position hash of low corner of area
-- value: {handle=sound handle, name=sound name}
fire.sounds = {}
function fire.get_area_p0p1(pos)
local p0 = {
x=math.floor(pos.x/fire.D)*fire.D,
y=math.floor(pos.y/fire.D)*fire.D,
z=math.floor(pos.z/fire.D)*fire.D,
}
local p1 = {
x=p0.x+fire.D-1,
y=p0.y+fire.D-1,
z=p0.z+fire.D-1
}
return p0, p1
end
function fire.update_sounds_around(pos)
local p0, p1 = fire.get_area_p0p1(pos)
local cp = {x=(p0.x+p1.x)/2, y=(p0.y+p1.y)/2, z=(p0.z+p1.z)/2}
local flames_p = minetest.find_nodes_in_area(p0, p1, {"fire:basic_flame"})
--print("number of flames at "..minetest.pos_to_string(p0).."/"
-- ..minetest.pos_to_string(p1)..": "..#flames_p)
local should_have_sound = (#flames_p > 0)
local wanted_sound = nil
if #flames_p >= 9 then
wanted_sound = {name="fire_large", gain=1.5}
elseif #flames_p > 0 then
wanted_sound = {name="fire_small", gain=1.5}
end
local p0_hash = minetest.hash_node_position(p0)
local sound = fire.sounds[p0_hash]
if not sound then
if should_have_sound then
fire.sounds[p0_hash] = {
handle = minetest.sound_play(wanted_sound, {pos=cp, loop=true}),
name = wanted_sound.name,
}
end
else
if not wanted_sound then
minetest.sound_stop(sound.handle)
fire.sounds[p0_hash] = nil
elseif sound.name ~= wanted_sound.name then
minetest.sound_stop(sound.handle)
fire.sounds[p0_hash] = {
handle = minetest.sound_play(wanted_sound, {pos=cp, loop=true}),
name = wanted_sound.name,
}
end
end
end
function fire.on_flame_add_at(pos)
--print("flame added at "..minetest.pos_to_string(pos))
fire.update_sounds_around(pos)
end
function fire.on_flame_remove_at(pos)
--print("flame removed at "..minetest.pos_to_string(pos))
fire.update_sounds_around(pos)
end
function fire.find_pos_for_flame_around(pos)
return minetest.find_node_near(pos, 1, {"air"})
end
function fire.flame_should_extinguish(pos)
if minetest.setting_getbool("disable_fire") then return true end
--return minetest.find_node_near(pos, 1, {"group:puts_out_fire"})
local p0 = {x=pos.x-2, y=pos.y, z=pos.z-2}
local p1 = {x=pos.x+2, y=pos.y, z=pos.z+2}
local ps = minetest.find_nodes_in_area(p0, p1, {"group:puts_out_fire"})
return (#ps ~= 0)
end
-- Ignite neighboring nodes
minetest.register_abm({
nodenames = {"group:flammable"},
neighbors = {"group:igniter"},
interval = 1,
chance = 2,
action = function(p0, node, _, _)
-- If there is water or stuff like that around flame, don't ignite
if fire.flame_should_extinguish(p0) then
return
end
local p = fire.find_pos_for_flame_around(p0)
if p then
minetest.set_node(p, {name="fire:basic_flame"})
fire.on_flame_add_at(p)
end
end,
})
-- Rarely ignite things from far
minetest.register_abm({
nodenames = {"group:igniter"},
neighbors = {"air"},
interval = 2,
chance = 10,
action = function(p0, node, _, _)
local reg = minetest.registered_nodes[node.name]
if not reg or not reg.groups.igniter or reg.groups.igniter < 2 then
return
end
local d = reg.groups.igniter
local p = minetest.find_node_near(p0, d, {"group:flammable"})
if p then
-- If there is water or stuff like that around flame, don't ignite
if fire.flame_should_extinguish(p) then
return
end
local p2 = fire.find_pos_for_flame_around(p)
if p2 then
minetest.set_node(p2, {name="fire:basic_flame"})
fire.on_flame_add_at(p2)
end
end
end,
})
-- Remove flammable nodes and flame
minetest.register_abm({
nodenames = {"fire:basic_flame"},
interval = 1,
chance = 2,
action = function(p0, node, _, _)
-- If there is water or stuff like that around flame, remove flame
if fire.flame_should_extinguish(p0) then
minetest.remove_node(p0)
fire.on_flame_remove_at(p0)
return
end
-- Make the following things rarer
if math.random(1,3) == 1 then
return
end
-- If there are no flammable nodes around flame, remove flame
if not minetest.find_node_near(p0, 1, {"group:flammable"}) then
minetest.remove_node(p0)
fire.on_flame_remove_at(p0)
return
end
if math.random(1,4) == 1 then
-- remove a flammable node around flame
local p = minetest.find_node_near(p0, 1, {"group:flammable"})
if p then
-- If there is water or stuff like that around flame, don't remove
if fire.flame_should_extinguish(p0) then
return
end
minetest.remove_node(p)
nodeupdate(p)
end
else
-- remove flame
minetest.remove_node(p0)
fire.on_flame_remove_at(p0)
end
end,
})
end
It's a little modification, but I would want your opinion about it.)
- Better modstore
- Less bugs than in this version (I found one or two... from minetest core...)
I will probably post a new topic about the fire mod in a few days in the Features Discussion.
Thanks.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 16, 2014 06:26
by webdesigner97
Mg wrote:Hello everyone,
I would like to add (in version 0.4.11, or 0.5, if it's possible) :
- Extinguish fire with water
- Enable/Disable fire (burning of flammable nodes) in minetest.conf
(Here is a modified version of fire mod :
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
-- minetest/fire/init.lua
minetest.register_node("fire:basic_flame", {
description = "Fire",
drawtype = "plantlike",
tiles = {{
name="fire_basic_flame_animated.png",
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1},
}},
inventory_image = "fire_basic_flame.png",
light_source = 14,
groups = {igniter=2,dig_immediate=3,hot=3},
drop = 'fire:basic_flame',
walkable = false,
buildable_to = true,
damage_per_second = 4,
})
if minetest.setting_getbool("fire") == nil or minetest.setting_getbool("fire") == true then
minetest.register_node(":fire:basic_flame", {
after_place_node = function(pos, placer)
fire.on_flame_add_at(pos)
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
fire.on_flame_remove_at(pos)
end,
})
fire = {}
fire.D = 6
-- key: position hash of low corner of area
-- value: {handle=sound handle, name=sound name}
fire.sounds = {}
function fire.get_area_p0p1(pos)
local p0 = {
x=math.floor(pos.x/fire.D)*fire.D,
y=math.floor(pos.y/fire.D)*fire.D,
z=math.floor(pos.z/fire.D)*fire.D,
}
local p1 = {
x=p0.x+fire.D-1,
y=p0.y+fire.D-1,
z=p0.z+fire.D-1
}
return p0, p1
end
function fire.update_sounds_around(pos)
local p0, p1 = fire.get_area_p0p1(pos)
local cp = {x=(p0.x+p1.x)/2, y=(p0.y+p1.y)/2, z=(p0.z+p1.z)/2}
local flames_p = minetest.find_nodes_in_area(p0, p1, {"fire:basic_flame"})
--print("number of flames at "..minetest.pos_to_string(p0).."/"
-- ..minetest.pos_to_string(p1)..": "..#flames_p)
local should_have_sound = (#flames_p > 0)
local wanted_sound = nil
if #flames_p >= 9 then
wanted_sound = {name="fire_large", gain=1.5}
elseif #flames_p > 0 then
wanted_sound = {name="fire_small", gain=1.5}
end
local p0_hash = minetest.hash_node_position(p0)
local sound = fire.sounds[p0_hash]
if not sound then
if should_have_sound then
fire.sounds[p0_hash] = {
handle = minetest.sound_play(wanted_sound, {pos=cp, loop=true}),
name = wanted_sound.name,
}
end
else
if not wanted_sound then
minetest.sound_stop(sound.handle)
fire.sounds[p0_hash] = nil
elseif sound.name ~= wanted_sound.name then
minetest.sound_stop(sound.handle)
fire.sounds[p0_hash] = {
handle = minetest.sound_play(wanted_sound, {pos=cp, loop=true}),
name = wanted_sound.name,
}
end
end
end
function fire.on_flame_add_at(pos)
--print("flame added at "..minetest.pos_to_string(pos))
fire.update_sounds_around(pos)
end
function fire.on_flame_remove_at(pos)
--print("flame removed at "..minetest.pos_to_string(pos))
fire.update_sounds_around(pos)
end
function fire.find_pos_for_flame_around(pos)
return minetest.find_node_near(pos, 1, {"air"})
end
function fire.flame_should_extinguish(pos)
if minetest.setting_getbool("disable_fire") then return true end
--return minetest.find_node_near(pos, 1, {"group:puts_out_fire"})
local p0 = {x=pos.x-2, y=pos.y, z=pos.z-2}
local p1 = {x=pos.x+2, y=pos.y, z=pos.z+2}
local ps = minetest.find_nodes_in_area(p0, p1, {"group:puts_out_fire"})
return (#ps ~= 0)
end
-- Ignite neighboring nodes
minetest.register_abm({
nodenames = {"group:flammable"},
neighbors = {"group:igniter"},
interval = 1,
chance = 2,
action = function(p0, node, _, _)
-- If there is water or stuff like that around flame, don't ignite
if fire.flame_should_extinguish(p0) then
return
end
local p = fire.find_pos_for_flame_around(p0)
if p then
minetest.set_node(p, {name="fire:basic_flame"})
fire.on_flame_add_at(p)
end
end,
})
-- Rarely ignite things from far
minetest.register_abm({
nodenames = {"group:igniter"},
neighbors = {"air"},
interval = 2,
chance = 10,
action = function(p0, node, _, _)
local reg = minetest.registered_nodes[node.name]
if not reg or not reg.groups.igniter or reg.groups.igniter < 2 then
return
end
local d = reg.groups.igniter
local p = minetest.find_node_near(p0, d, {"group:flammable"})
if p then
-- If there is water or stuff like that around flame, don't ignite
if fire.flame_should_extinguish(p) then
return
end
local p2 = fire.find_pos_for_flame_around(p)
if p2 then
minetest.set_node(p2, {name="fire:basic_flame"})
fire.on_flame_add_at(p2)
end
end
end,
})
-- Remove flammable nodes and flame
minetest.register_abm({
nodenames = {"fire:basic_flame"},
interval = 1,
chance = 2,
action = function(p0, node, _, _)
-- If there is water or stuff like that around flame, remove flame
if fire.flame_should_extinguish(p0) then
minetest.remove_node(p0)
fire.on_flame_remove_at(p0)
return
end
-- Make the following things rarer
if math.random(1,3) == 1 then
return
end
-- If there are no flammable nodes around flame, remove flame
if not minetest.find_node_near(p0, 1, {"group:flammable"}) then
minetest.remove_node(p0)
fire.on_flame_remove_at(p0)
return
end
if math.random(1,4) == 1 then
-- remove a flammable node around flame
local p = minetest.find_node_near(p0, 1, {"group:flammable"})
if p then
-- If there is water or stuff like that around flame, don't remove
if fire.flame_should_extinguish(p0) then
return
end
minetest.remove_node(p)
nodeupdate(p)
end
else
-- remove flame
minetest.remove_node(p0)
fire.on_flame_remove_at(p0)
end
end,
})
end
It's a little modification, but I would want your opinion about it.)
- Better modstore
- Less bugs than in this version (I found one or two... from minetest core...)
I will probably post a new topic about the fire mod in a few days in the Features Discussion.
Thanks.
Water can already put out fires.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 16, 2014 07:28
by Mg
Ho, good, I didn't know it, thank you for the information. I will look at the new codes as soon as possible to get others new good informations.
Thanks.
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 16, 2014 15:44
by JPRuehmann
Hello
I think it would be a good Idea to split the world.mt File into to Files.
A world.mt withe database ant game settings.
A mod.mt with the List of enabled mods.
Thanks,
JPR
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Wed Jul 16, 2014 16:28
by TenPlus1
JPRuehmann wrote:Hello
I think it would be a good Idea to split the world.mt File into to Files.
A world.mt withe database ant game settings.
A mod.mt with the List of enabled mods.
Thanks,
JPR
Why ? the world.mt file isnt that big and contains only what it needs...
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Thu Jul 17, 2014 12:36
by JPRuehmann
Re: Wishes for Minetest 0.4.11 (or 0.5)

Posted:
Sat Jul 19, 2014 20:27
by ivalin
Would be good to see the "Use key in action = E (be default)"
You should place blocks with second mouse button and use the furnace and etc. with the use key .
And not pressing the "sneak key" + Right Mouse Button .