Furnaces seem to stop cooking when players are far away #533

Closed
opened 2019-04-14 00:06:37 +02:00 by Bloodshot · 19 comments
  1. Fill a furnace with materials and fuel
  2. Walk away and explore
  3. Return
  4. Check the furnaces. Usually, there will still be most of the materials left. Often, some of the fuel 'disappears'.

What I think is happening is that when the furnaces are unloaded, they do not save the fractional fuel left over properly. This is perhaps most evident when leaving the furnace with, say, 4 coal and 32 material, and when the furnace is done cooking, end up with 3 material left over.

If this is the case, then I suggest that when a furnace gets loaded back in, it simulate the amount of cooking that would have been done had it been loaded the entire time.

1. Fill a furnace with materials and fuel 2. Walk away and explore 3. Return 4. Check the furnaces. Usually, there will still be most of the materials left. Often, some of the fuel 'disappears'. What I think is happening is that when the furnaces are unloaded, they do not save the fractional fuel left over properly. This is perhaps most evident when leaving the furnace with, say, 4 coal and 32 material, and when the furnace is done cooking, end up with 3 material left over. If this is the case, then I suggest that when a furnace gets loaded back in, it simulate the amount of cooking that would have been done had it been loaded the entire time.
Wuzzy added the
bug
nodes
labels 2019-04-21 21:49:47 +02:00

It looks like this was fixed in minetest_game upstream by https://github.com/minetest/minetest_game/pull/1988

It looks like this was fixed in minetest_game upstream by https://github.com/minetest/minetest_game/pull/1988
Wuzzy added the
contribution inside
label 2020-03-22 20:12:50 +01:00
Contributor

When you fall asleep to skip the night, furnace doesn't "continue the job" and 'do' some weird thing - something like a 'fall asleep together with you' :)

In original MC you always find it successfully finished its job on the morning.

Same thing seems to be when you disconnect for a while and you was the latest player.

I think it needs an on-click checking of in-game time, but unfortunatelly don't know how difficult it for implementation at the moment...

When you fall asleep to skip the night, furnace doesn't "continue the job" and 'do' some weird thing - something like a 'fall asleep together with you' :) In original MC you always find it successfully finished its job on the morning. Same thing seems to be when you disconnect for a while and you was the latest player. I think it needs an on-click checking of in-game time, but unfortunatelly don't know how difficult it for implementation at the moment...
Contributor

I took minetest_game's commit @DeltaF1 mentioned above and adapted it to MineClone2 (edf9cfba4f) to test on my server.

It seems, 'skip the night' feature (when all players go to beds) still can't affect the furnace :(

But when I went far away, left the furnace full of rocks and coal and then came back - I found the job finished properly. It's great!

I took minetest_game's commit @DeltaF1 mentioned above and adapted it to MineClone2 (https://git.minetest.land/kay27/MineClone2/commit/edf9cfba4ff2b4c42fb1d8ac7d151d621c05d591) to test on my server. It seems, 'skip the night' feature (when all players go to beds) still can't affect the furnace :( But when I went far away, left the furnace full of rocks and coal and then came back - I found the job finished properly. It's great!
Contributor

I tried to use game time instead of general to make furnaces work during the nights skipped in bed, 1d7732503d

It seems to work at first glance, but not smooth, sometime melting process stops for several seconds :((( I need to get in-game analog of timers but it looks like it doesn't exists?

Dear @Wuzzy and @Rootyjr, maybe you know the way how to make more smooth long process which can consider the change of the date in Minetest? ... Maybe I better need to open an issue in Minetest repo? :) Sorry, sorry, I'm just not very sure if I'm on the right way.

I tried to use game time instead of general to make furnaces work during the nights skipped in bed, https://git.minetest.land/kay27/MineClone2/commit/1d7732503d5453e1ee0f3d352569b5711a15580c It seems to work at first glance, but not smooth, sometime melting process stops for several seconds :((( I need to get in-game analog of timers but it looks like it doesn't exists? Dear @Wuzzy and @Rootyjr, maybe you know the way how to make more smooth long process which can consider the change of the date in Minetest? ... Maybe I better need to open an issue in Minetest repo? :) Sorry, sorry, I'm just not very sure if I'm on the right way.
Contributor

I explored Minetest API and it was a big surprize for me that we couldn't just set desired time... And I forgot to commit the changes of mcl_beds as well, to make furnaces work... As we need to really skip the nights, day counter must be incremented, the change is considering that: 26bbe63620

I explored Minetest API and it was a big surprize for me that we couldn't just set desired time... And I forgot to commit the changes of mcl_beds as well, to make furnaces work... As we need to really skip the nights, day counter must be incremented, the change is considering that: https://git.minetest.land/kay27/MineClone2/commit/26bbe636205ba633354fb8870fa9c448c0cd911c
Contributor

4128725a98

I was wrong about the time, correct multiplier is 72 not 180 (24 hour * 3 20-min intervals), it's now smooth almost as before.

And sometimes 1 second for after wasn't enough, furnaces didn't produce anything to the morning, I increased it to 1.2.

https://git.minetest.land/kay27/MineClone2/commit/4128725a985cc021378c4edcb3014611265a7a3a I was wrong about the time, correct multiplier is 72 not 180 (24 hour * 3 20-min intervals), it's now smooth almost as before. And sometimes 1 second for ```after``` wasn't enough, furnaces didn't produce anything to the morning, I increased it to 1.2.
Contributor

And very sorry, I was wrong about the day counter, it automatically increases when new time less than current: 5146086a64/src/environment.cpp (L68) . It was no reason for me to patch mcl_beds.skip_night(), so I reverted it its to original state (df90c51769)... But then I can't realize why it sometimes work somtimes not, maybe the problem is in the algorythm of furnace_node_timer().

And very sorry, I was wrong about the day counter, it automatically increases when new time less than current: https://github.com/minetest/minetest/blob/5146086a64d5eeb480948d612a008a2ec81455d4/src/environment.cpp#L68 . It was no reason for me to patch ```mcl_beds.skip_night()```, so I reverted it its to original state (https://git.minetest.land/kay27/MineClone2/commit/df90c5176902ac0ca291652cea0ec0e788877d2f)... But then I can't realize why it sometimes work somtimes not, maybe the problem is in the algorythm of ```furnace_node_timer()```.
Contributor

Seems I need to stop for a while with some 'beta' result,
b4037ea0d6

Smothness is lost again: when timer passes 1 second - in-game time floats from 0.15 to 6.15 (with 2 players connected). But at whole it seems to work now. IDK how to imporve it further, so I'm going to go to sleep to skip the night...

P. S. For saving your time there's a summary commit fixing bed counters and furnaces in the alternate fork: 6d3f37ff8a

Seems I need to stop for a while with some 'beta' result, https://git.minetest.land/kay27/MineClone2/commit/b4037ea0d649fe5b10350cfb943c2cefed368ad6 Smothness is lost again: when timer passes 1 second - in-game time floats from 0.15 to 6.15 (with 2 players connected). But at whole it seems to work now. IDK how to imporve it further, so I'm going to go to sleep to skip the night... P. S. For saving your time there's a summary commit fixing bed counters and furnaces in the alternate fork: https://git.minetest.land/kay2777/MineClone2/commit/6d3f37ff8abeb95deec8e64afe8d41e29e881d99
Contributor

I rewrote and simplified a lot furnace_node_timer(), now I hope anyone can understand its logic and make further fixes if I missed a something, cf976dbbb7

But it is now smooth, it can skip the night, it takes not so much CPU.

local function furnace_node_timer(pos, elapsed)
	--
	-- Inizialize metadata
	--
	local meta = minetest.get_meta(pos)
	local fuel_time = meta:get_float("fuel_time") or 0
	local src_time = meta:get_float("src_time") or 0
	local src_item = meta:get_string("src_item") or ""
	local fuel_totaltime = meta:get_float("fuel_totaltime") or 0

	local current_game_time = .0 + ((minetest.get_day_count() + minetest.get_timeofday()) * time_multiplier)

	local last_game_time = meta:get_string("last_gametime") -- FIXME: In Windows s(g)et_float() works OK but under Linux it returns rounded 2-byte values like 449540.000000000 which are unusable
	if last_game_time then
		last_game_time = tonumber(last_game_time)
	end
	if not last_game_time or last_game_time < 1 then
		last_game_time = current_game_time
	elseif last_game_time == current_game_time then
		current_game_time = current_game_time + 1.0
	end
	local elapsed_game_time = .0 + current_game_time - last_game_time

	local inv = meta:get_inventory()
	local srclist, fuellist

	local cookable, cooked
	local active
	local fuel

	srclist = inv:get_list("src")
	fuellist = inv:get_list("fuel")

	-- Check if src item has been changed
	if srclist[1]:get_name() ~= src_item then
		-- Reset cooking progress in this case
		src_time = 0
		src_item = srclist[1]:get_name()
		elapsed_game_time = 1	-- ?FIXME? Can break mechanics if it loads furnaces during 'skip the night'
					-- added to prevent instant cooking when we didn't touch the furnace for a long time and then load it
	end

	local update = true
	while elapsed_game_time > 0.00001 and update do
		--
		-- Cooking
		--

		local el = elapsed_game_time

		-- Check if we have cookable content: cookable
		local aftercooked
		cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
		cookable = cooked.time ~= 0
		if cookable then
			-- Successful cooking requires space in dst slot and time
			if not inv:room_for_item("dst", cooked.item) then
				cookable = false
			end
		end

		if cookable then -- fuel lasts long enough, adjust el to cooking duration
			el = math.min(el, cooked.time - src_time)
		end

		-- Check if we have enough fuel to burn
		active = fuel_time < fuel_totaltime
		if cookable and not active then
			-- We need to get new fuel
			local afterfuel
			fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})

			if fuel.time == 0 then
				-- No valid fuel in fuel list -- stop
				fuel_totaltime = 0
				src_time = 0
				update = false
			else
				-- Take fuel from fuel list
				inv:set_stack("fuel", 1, afterfuel.items[1])
				fuel_time = 0
				fuel_totaltime = fuel.time
				el = math.min(el, fuel_totaltime)
				active = true
				fuellist = inv:get_list("fuel")
			end
		elseif active then
			el = math.min(el, fuel_totaltime - fuel_time)
			-- The furnace is currently active and has enough fuel
			fuel_time = fuel_time + el
		end

		-- If there is a cookable item then check if it is ready yet
		if cookable and active then
			src_time = src_time + el
			-- Place result in dst list if done
			if src_time >= cooked.time then
				inv:add_item("dst", cooked.item)
				inv:set_stack("src", 1, aftercooked.items[1])

				-- Unique recipe: Pour water into empty bucket after cooking wet sponge successfully
				if inv:get_stack("fuel", 1):get_name() == "mcl_buckets:bucket_empty" then
					if srclist[1]:get_name() == "mcl_sponges:sponge_wet" then
						inv:set_stack("fuel", 1, "mcl_buckets:bucket_water")
						fuellist = inv:get_list("fuel")
					-- Also for river water
					elseif srclist[1]:get_name() == "mcl_sponges:sponge_wet_river_water" then
						inv:set_stack("fuel", 1, "mcl_buckets:bucket_river_water")
						fuellist = inv:get_list("fuel")
					end
				end

				srclist = inv:get_list("src")
				src_time = 0
			end
		end

		elapsed_game_time = elapsed_game_time - el
	end

	if fuel and fuel_totaltime > fuel.time then
		fuel_totaltime = fuel.time
	end
	if srclist and srclist[1]:is_empty() then
		src_time = 0
	end

	--
	-- Update formspec and node
	--
	local formspec = inactive_formspec
	local item_state
	local item_percent = 0
	if cookable then
		item_percent = math.floor(src_time / cooked.time * 100)
	end

	local result = false

	if active then
		local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100)
		formspec = active_formspec(fuel_percent, item_percent)
		swap_node(pos, "mcl_furnaces:furnace_active")
		-- make sure timer restarts automatically
		result = true
	else
		swap_node(pos, "mcl_furnaces:furnace")
		-- stop timer on the inactive furnace
		minetest.get_node_timer(pos):stop()
	end

	--
	-- Set meta values
	--
	meta:set_float("fuel_totaltime", fuel_totaltime)
	meta:set_float("fuel_time", fuel_time)
	meta:set_float("src_time", src_time)
	if srclist then
		 meta:set_string("src_item", srclist[1]:get_name())
	else
		 meta:set_string("src_item", "")
	end
	meta:set_string("formspec", formspec)
	meta:set_string("last_gametime", tostring(current_game_time)) -- FIXME: In Windows s(g)et_float() works OK but under Linux it returns rounded 2-byte values like 449540.000000000 which are unusable

	return result
end
I rewrote and simplified a lot ```furnace_node_timer()```, now I hope anyone can understand its logic and make further fixes if I missed a something, https://git.minetest.land/kay27/MineClone2/commit/cf976dbbb793cb14afafbea61717e893d92fdc75 But it is now smooth, it can skip the night, it takes not so much CPU. ``` local function furnace_node_timer(pos, elapsed) -- -- Inizialize metadata -- local meta = minetest.get_meta(pos) local fuel_time = meta:get_float("fuel_time") or 0 local src_time = meta:get_float("src_time") or 0 local src_item = meta:get_string("src_item") or "" local fuel_totaltime = meta:get_float("fuel_totaltime") or 0 local current_game_time = .0 + ((minetest.get_day_count() + minetest.get_timeofday()) * time_multiplier) local last_game_time = meta:get_string("last_gametime") -- FIXME: In Windows s(g)et_float() works OK but under Linux it returns rounded 2-byte values like 449540.000000000 which are unusable if last_game_time then last_game_time = tonumber(last_game_time) end if not last_game_time or last_game_time < 1 then last_game_time = current_game_time elseif last_game_time == current_game_time then current_game_time = current_game_time + 1.0 end local elapsed_game_time = .0 + current_game_time - last_game_time local inv = meta:get_inventory() local srclist, fuellist local cookable, cooked local active local fuel srclist = inv:get_list("src") fuellist = inv:get_list("fuel") -- Check if src item has been changed if srclist[1]:get_name() ~= src_item then -- Reset cooking progress in this case src_time = 0 src_item = srclist[1]:get_name() elapsed_game_time = 1 -- ?FIXME? Can break mechanics if it loads furnaces during 'skip the night' -- added to prevent instant cooking when we didn't touch the furnace for a long time and then load it end local update = true while elapsed_game_time > 0.00001 and update do -- -- Cooking -- local el = elapsed_game_time -- Check if we have cookable content: cookable local aftercooked cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) cookable = cooked.time ~= 0 if cookable then -- Successful cooking requires space in dst slot and time if not inv:room_for_item("dst", cooked.item) then cookable = false end end if cookable then -- fuel lasts long enough, adjust el to cooking duration el = math.min(el, cooked.time - src_time) end -- Check if we have enough fuel to burn active = fuel_time < fuel_totaltime if cookable and not active then -- We need to get new fuel local afterfuel fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) if fuel.time == 0 then -- No valid fuel in fuel list -- stop fuel_totaltime = 0 src_time = 0 update = false else -- Take fuel from fuel list inv:set_stack("fuel", 1, afterfuel.items[1]) fuel_time = 0 fuel_totaltime = fuel.time el = math.min(el, fuel_totaltime) active = true fuellist = inv:get_list("fuel") end elseif active then el = math.min(el, fuel_totaltime - fuel_time) -- The furnace is currently active and has enough fuel fuel_time = fuel_time + el end -- If there is a cookable item then check if it is ready yet if cookable and active then src_time = src_time + el -- Place result in dst list if done if src_time >= cooked.time then inv:add_item("dst", cooked.item) inv:set_stack("src", 1, aftercooked.items[1]) -- Unique recipe: Pour water into empty bucket after cooking wet sponge successfully if inv:get_stack("fuel", 1):get_name() == "mcl_buckets:bucket_empty" then if srclist[1]:get_name() == "mcl_sponges:sponge_wet" then inv:set_stack("fuel", 1, "mcl_buckets:bucket_water") fuellist = inv:get_list("fuel") -- Also for river water elseif srclist[1]:get_name() == "mcl_sponges:sponge_wet_river_water" then inv:set_stack("fuel", 1, "mcl_buckets:bucket_river_water") fuellist = inv:get_list("fuel") end end srclist = inv:get_list("src") src_time = 0 end end elapsed_game_time = elapsed_game_time - el end if fuel and fuel_totaltime > fuel.time then fuel_totaltime = fuel.time end if srclist and srclist[1]:is_empty() then src_time = 0 end -- -- Update formspec and node -- local formspec = inactive_formspec local item_state local item_percent = 0 if cookable then item_percent = math.floor(src_time / cooked.time * 100) end local result = false if active then local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100) formspec = active_formspec(fuel_percent, item_percent) swap_node(pos, "mcl_furnaces:furnace_active") -- make sure timer restarts automatically result = true else swap_node(pos, "mcl_furnaces:furnace") -- stop timer on the inactive furnace minetest.get_node_timer(pos):stop() end -- -- Set meta values -- meta:set_float("fuel_totaltime", fuel_totaltime) meta:set_float("fuel_time", fuel_time) meta:set_float("src_time", src_time) if srclist then meta:set_string("src_item", srclist[1]:get_name()) else meta:set_string("src_item", "") end meta:set_string("formspec", formspec) meta:set_string("last_gametime", tostring(current_game_time)) -- FIXME: In Windows s(g)et_float() works OK but under Linux it returns rounded 2-byte values like 449540.000000000 which are unusable return result end ```
Contributor

So strange, I posted a link to my commit but don't see my comment now :(

So I post it again - summary change of furnaces to compare whith upstream: f1c01e2785

@Wuzzy Would you please merge it?

So strange, I posted a link to my commit but don't see my comment now :( So I post it again - summary change of furnaces to compare whith upstream: https://git.minetest.land/kay2777/MineClone2/commit/f1c01e2785d618261d5c7e492c80c1114fd8aa7e @Wuzzy Would you please merge it?
Member

I don't like to accept code that has an open FIXME in it, especially if it causes weird platform-depending bugs.

Also, this code scans time_speed only at launchtime. But it's common to change time_speed at runtime. So when the admin changes time_speed at runtime, the furnace calculation will break.

This commit needs more work.

I don't like to accept code that has an open FIXME in it, especially if it causes weird platform-depending bugs. Also, this code scans `time_speed` only at launchtime. But it's common to change `time_speed` at runtime. So when the admin changes `time_speed` at runtime, the furnace calculation will break. This commit needs more work.
Contributor

No, it doesnt cause since float changed to string with tonumber/tostring conversion. But as I hope platform dependency for float shall gone some day I marked the code by FIXME.

Maybe this isnt a dependency. Under Linux my day counter is significally greater than in a fresh world in windows sandbox. These two FIXME comments for set/get string instead of float are only because the code now contain wrap around which... works absolutely, it might be kept as is forever without fixing. It is just not right, not as it must be, but as it must be it didnt work, so... ... ... Maybe you have better idea?

One more FIXME is about long-term calculation. It means when you for example use hopper to load furnace source slot and you consider that during the skipped night hopper+furnace shall work as usual, this line is breaking it at all. I very sorry about that but, first of all, before this patch it wasnt work too, and if we remove the line and leave the furnace for long time and then change the source slot (load it with something) it would cook it at one second which would be absolutely wrong too. I dont know how to resolve it quickly. Maybe we have to consider the hopper as a special case. In my game progress I still never crafted the hoppers and more mechanics so maybe I can fix it later, for now I'm just happy that furnace works when you leave it, when you dosconnect and when you skipping the night. We may remove FIXME but it would make the life a bit harder in future... But who knows maybe you have the way better again?

I didnt know about the way how to change game speed at run time, I thought of it as a constant that's why read it only once, but it might be easily moved into the beginning of timer handler itself.

Thank you for revising the changes. Would you like to move the reading of time_speed yourself or wait for me to add next commit?

My code has no copyright, no need to keep my authority, I deleted the fork kay2777/MineClone2 and created it again, maybe now its unusable unless removing and adding the 'other link' back, but here is no pull request so I do what I can by two repos, my operational fork is kay27/MineClone2, kay2777 is for temporary purposes to show you some diffs. As a player I just would be happy if the problem would solved not only in my forks but in the upstream too. This code is tested many times, but I still didnt test the special recipe :(

No, it doesnt cause since float changed to string with tonumber/tostring conversion. But as I hope platform dependency for float shall gone some day I marked the code by FIXME. Maybe this isnt a dependency. Under Linux my day counter is significally greater than in a fresh world in windows sandbox. These two FIXME comments for set/get string instead of float are only because the code now contain wrap around which... works absolutely, it might be kept as is forever without fixing. It is just not right, not as it must be, but as it must be it didnt work, so... ... ... Maybe you have better idea? One more FIXME is about long-term calculation. It means when you for example use hopper to load furnace source slot and you consider that during the skipped night hopper+furnace shall work as usual, this line is breaking it at all. I very sorry about that but, first of all, before this patch it wasnt work too, and if we remove the line and leave the furnace for long time and then change the source slot (load it with something) it would cook it at one second which would be absolutely wrong too. I dont know how to resolve it quickly. Maybe we have to consider the hopper as a special case. In my game progress I still never crafted the hoppers and more mechanics so maybe I can fix it later, for now I'm just happy that furnace works when you leave it, when you dosconnect and when you skipping the night. We may remove FIXME but it would make the life a bit harder in future... But who knows maybe you have the way better again? I didnt know about the way how to change game speed at run time, I thought of it as a constant that's why read it only once, but it might be easily moved into the beginning of timer handler itself. Thank you for revising the changes. Would you like to move the reading of time_speed yourself or wait for me to add next commit? My code has no copyright, no need to keep my authority, I deleted the fork kay2777/MineClone2 and created it again, maybe now its unusable unless removing and adding the 'other link' back, but here is no pull request so I do what I can by two repos, my operational fork is kay27/MineClone2, kay2777 is for temporary purposes to show you some diffs. As a player I just would be happy if the problem would solved not only in my forks but in the upstream too. This code is tested many times, but I still didnt test the special recipe :(
Contributor

Consider time_speed change at runtime: 252c7c501e

Consider ```time_speed``` change at runtime: https://git.minetest.land/kay2777/MineClone2/commit/252c7c501efb539e3d289294412bec2aed6b8b49
Contributor

BTW found a problem when cooking blocked by wrong/full dst and you remove dst - it doesn't start right after that, and then if you reload fuel it starts with incorrect offset of time, I'm thinking how to fix it

BTW found a problem when cooking blocked by wrong/full dst and you remove dst - it doesn't start right after that, and then if you reload fuel it starts with incorrect offset of time, I'm thinking how to fix it
Contributor

@Wuzzy seems it now match your wishes: I changed FIXME to TODO for working with meta data (it is actually more correct), and accumulated game time now resets on any inventory manipulations, so one more FIXME removed.

Hope I didn't miss something more in new version of my patch, this time I think I checked the everything including special recipe (but as usual when I made 3 buckets of water by furnace with coal, empty bucket and wet sponge, I could stack only 2 and 1 but not 3, as it described in Wuzzy/MineClone2#745 ).

649da8bb15

@Wuzzy seems it now match your wishes: I changed ```FIXME``` to ```TODO``` for working with meta data (it is actually more correct), and accumulated game time now resets on any inventory manipulations, so one more ```FIXME``` removed. Hope I didn't miss something more in new version of my patch, this time I think I checked the everything including special recipe (but as usual when I made 3 buckets of water by furnace with coal, empty bucket and wet sponge, I could stack only 2 and 1 but not 3, as it described in https://git.minetest.land/Wuzzy/MineClone2/issues/745 ). https://git.minetest.land/kay27/MineClone2/commit/649da8bb159c7aedd32b5a87d3279f7585751d62
Member

Alright, I need to test this later.

BTW: The super-sneaky ultra top secret MiB Agent Smith hidden way to change time_speed or any other setting is with the /set chat command.

Alright, I need to test this later. BTW: The super-sneaky ultra top secret MiB Agent Smith hidden way to change `time_speed` or any other setting is with the `/set` chat command.
kay27 added the
Testing / Retest
label 2020-08-02 04:31:59 +02:00
Contributor

@Wuzzy What do you think about adding this to master for everyone can check? Several weeks of testing on my server are passed with no problems. I found a small error in my code which Lua forgives, with function parameter, of course I'll fix it, but that's all...

@Wuzzy What do you think about adding this to master for everyone can check? Several weeks of testing on my server are passed with no problems. I found a small error in my code which Lua forgives, with function parameter, of course I'll fix it, but that's all...
Member

Alright, let's do this! Feel free to commit and push this.

Alright, let's do this! Feel free to commit and push this.
Contributor

Thanks!

Fixed, c424b036b2

Thanks! Fixed, https://git.minetest.land/Wuzzy/MineClone2/commit/c424b036b2876769e6f48be4f5af5668d1161ec4
kay27 closed this issue 2020-08-10 14:39:09 +02:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: VoxeLibre/VoxeLibre#533
No description provided.