Wishes for Minetest 0.4.11 (or 0.5)

Locked
Ragnar
Member
Posts: 849
Joined: Thu Oct 25, 2012 15:19
Location: Estonia
Contact:

Wishes for Minetest 0.4.11 (or 0.5)

by Ragnar » Post

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. =)

User avatar
Krock
Developer
Posts: 4649
Joined: Thu Oct 03, 2013 07:48
GitHub: SmallJoker
Location: Switzerland
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by Krock » Post

It's not XMAS yet.
Look, I programmed a bug for you. >> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>

Ragnar
Member
Posts: 849
Joined: Thu Oct 25, 2012 15:19
Location: Estonia
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by Ragnar » Post

But that doesnt mean that we cant wish for stuffzs

User avatar
rubenwardy
Moderator
Posts: 6972
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: Bristol, United Kingdom
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by rubenwardy » Post

Optimisation.
Higher FPS.
Less (visible) server lag.
Game play polish.

Longer term:
Client side API for Graphics, Sounds and client side prediction for mods.
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
Kilarin
Member
Posts: 894
Joined: Mon Mar 10, 2014 00:36
GitHub: Kilarin

Re: Wishes for Minetest 0.4.11 (or 0.5)

by Kilarin » Post

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.

User avatar
TenPlus1
Member
Posts: 3715
Joined: Mon Jul 29, 2013 13:38
In-game: TenPlus1
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by TenPlus1 » Post

I would really love for this to be possible in the next version:

viewtopic.php?f=5&t=9568&hilit=alpha

prestidigitator
Member
Posts: 647
Joined: Thu Feb 21, 2013 23:54

Re: Wishes for Minetest 0.4.11 (or 0.5)

by prestidigitator » Post

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).

User avatar
JPRuehmann
Member
Posts: 334
Joined: Fri Mar 21, 2014 21:40
Location: Germany
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by JPRuehmann » Post

Hello
I´d love to see the Map feature of gsmanners integrated.
till then,
JPR

User avatar
JPRuehmann
Member
Posts: 334
Joined: Fri Mar 21, 2014 21:40
Location: Germany
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by JPRuehmann » Post

Hello
Change of the behaviour of the Enter Key in Formspecs would be lovely.
Thanks,
JPR

Ragnar
Member
Posts: 849
Joined: Thu Oct 25, 2012 15:19
Location: Estonia
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by Ragnar » Post

TenPlus1 wrote:I would really love for this to be possible in the next version:

viewtopic.php?f=5&t=9568&hilit=alpha
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..

User avatar
HeroOfTheWinds
Member
Posts: 470
Joined: Wed Apr 23, 2014 23:16
GitHub: HeroOfTheWinds
IRC: WindHero
Location: Hawaii

Re: Wishes for Minetest 0.4.11 (or 0.5)

by HeroOfTheWinds » Post

More efficient ABM's that cause less lag while playing on servers.
Nam ex spatio, omnes res venire possunt.
Why let the ground limit you when you can reach for the sky?
Back to college now, yay for sophomore year schedules. :P

User avatar
Krock
Developer
Posts: 4649
Joined: Thu Oct 03, 2013 07:48
GitHub: SmallJoker
Location: Switzerland
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by Krock » Post

HeroOfTheWinds wrote:More efficient ABM's that cause less lag while playing on servers.
Explain please. Do you mean code cleanups?
Look, I programmed a bug for you. >> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>

User avatar
hoodedice
Member
Posts: 1374
Joined: Sat Jul 06, 2013 06:33
GitHub: hoodedice
IRC: hoodedice
In-game: hoodedice
Location: world
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by hoodedice » Post

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
7:42 PM - Bauglio: I think if you go to staples you could steal firmware from a fax machine that would run better than win10 does on any platform
7:42 PM - Bauglio: so fudge the stable build
7:43 PM - Bauglio: get the staple build

User avatar
rubenwardy
Moderator
Posts: 6972
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: Bristol, United Kingdom
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by rubenwardy » Post

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.
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
HeroOfTheWinds
Member
Posts: 470
Joined: Wed Apr 23, 2014 23:16
GitHub: HeroOfTheWinds
IRC: WindHero
Location: Hawaii

Re: Wishes for Minetest 0.4.11 (or 0.5)

by HeroOfTheWinds » Post

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....
Nam ex spatio, omnes res venire possunt.
Why let the ground limit you when you can reach for the sky?
Back to college now, yay for sophomore year schedules. :P

User avatar
Desour
Member
Posts: 1469
Joined: Thu Jun 19, 2014 19:49
GitHub: Desour
IRC: Desour
In-game: DS
Location: I'm scared that if this is too exact, I will be unable to use my keyboard.

Re: Wishes for Minetest 0.4.11 (or 0.5)

by Desour » Post

I need seeds from dry shrub.
he/him; Codeberg; GitHub; ContentDB; public personal TODO list; "DS" is preferred (but often too short)

freejack
Member
Posts: 72
Joined: Wed Jan 08, 2014 06:37

Re: Wishes for Minetest 0.4.11 (or 0.5)

by freejack » Post

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.......

User avatar
kaeza
Moderator
Posts: 2162
Joined: Thu Oct 18, 2012 05:00
GitHub: kaeza
IRC: kaeza diemartin blaaaaargh
In-game: kaeza
Location: Montevideo, Uruguay
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by kaeza » Post

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...
Your signature is not the place for a blog post. Please keep it as concise as possible. Thank you!

Check out my stuff! | Donations greatly appreciated! PayPal

freejack
Member
Posts: 72
Joined: Wed Jan 08, 2014 06:37

Re: Wishes for Minetest 0.4.11 (or 0.5)

by freejack » Post

sorry meant furnaces......... and I know steel doors I wanted wooden............I know picky....

User avatar
Desour
Member
Posts: 1469
Joined: Thu Jun 19, 2014 19:49
GitHub: Desour
IRC: Desour
In-game: DS
Location: I'm scared that if this is too exact, I will be unable to use my keyboard.

Re: Wishes for Minetest 0.4.11 (or 0.5)

by Desour » Post

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".
he/him; Codeberg; GitHub; ContentDB; public personal TODO list; "DS" is preferred (but often too short)

freejack
Member
Posts: 72
Joined: Wed Jan 08, 2014 06:37

Re: Wishes for Minetest 0.4.11 (or 0.5)

by freejack » Post

I know I have mods....... I am saying it would be nice to have this in the API

User avatar
Wuzzy
Member
Posts: 4786
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by Wuzzy » Post

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.

User avatar
rubenwardy
Moderator
Posts: 6972
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: Bristol, United Kingdom
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by rubenwardy » Post

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.
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
Mg
Member
Posts: 86
Joined: Sun Mar 02, 2014 20:49
GitHub: LeMagnesium
IRC: ElectronLibre Mg
In-game: Mg
Location: Periodic Table

Re: Wishes for Minetest 0.4.11 (or 0.5)

by Mg » Post

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 :
Spoiler

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.

User avatar
webdesigner97
Member
Posts: 1328
Joined: Mon Jul 30, 2012 19:16
GitHub: webD97
IRC: webdesigner97
In-game: webdesigner97
Location: Cologne, Germany
Contact:

Re: Wishes for Minetest 0.4.11 (or 0.5)

by webdesigner97 » Post

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 :
Spoiler

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.

Locked

Who is online

Users browsing this forum: No registered users and 8 guests