Furnace out of fuel?

Post Reply
OmniStudent
Member
Posts: 261
Joined: Sat Nov 03, 2012 06:40

Furnace out of fuel?

by OmniStudent » Post

Does the furnace work in the current version of minetest master?

I have put both coal and wood in it, but get an "out of fuel" message from the furnace anyway.

OmniStudent
Member
Posts: 261
Joined: Sat Nov 03, 2012 06:40

by OmniStudent » Post

But it works in the minimal game version

tinoesroho
Member
Posts: 570
Joined: Fri Feb 17, 2012 21:55
Location: Canada

by tinoesroho » Post

Then that means the issue is with your copy of minetest_game. Get a new copy!
We are what we create.

I tinker and occasionally make (lousy) mods. Currently building an MMO subgame and updating mods. Pirate Party of Canada member. Sporadic author. 21 years old.

My github:
https://github.com/tinoesroho/

OmniStudent
Member
Posts: 261
Joined: Sat Nov 03, 2012 06:40

by OmniStudent » Post

Hm. The furnaces look different too between the minimal and regular versions.

User avatar
PilzAdam
Member
Posts: 4026
Joined: Fri Jul 20, 2012 16:19
GitHub: PilzAdam
IRC: PilzAdam
Location: Germany

by PilzAdam » Post

The furnaces messages are not correctly if you just put fuel in it (IIRC). If you put something to cook/smelt in it it will change.

OmniStudent
Member
Posts: 261
Joined: Sat Nov 03, 2012 06:40

by OmniStudent » Post

I tried to make coal out of wood when I got this error. Now it works - I think what solved it was changing to the stable version of minetest-game

User avatar
PilzAdam
Member
Posts: 4026
Joined: Fri Jul 20, 2012 16:19
GitHub: PilzAdam
IRC: PilzAdam
Location: Germany

by PilzAdam » Post

You cant make coal out of wood.

OmniStudent
Member
Posts: 261
Joined: Sat Nov 03, 2012 06:40

by OmniStudent » Post

I just did!

OmniStudent
Member
Posts: 261
Joined: Sat Nov 03, 2012 06:40

by OmniStudent » Post

OmniStudent wrote:I just did!
Oops, that was my doing:

I had added

Code: Select all

minetest.register_craft({
    type = "cooking",
    output = "default:coal_lump",
    recipe = "default:tree",
})
to line 480 of

/Users/me/minetest/minetest/games/minetest_game/mods/default/init.lua

streondj
Member
Posts: 11
Joined: Wed Dec 05, 2012 08:06

by streondj » Post

hey, I'm having same problem, "furnace out of fuel" using stable release version 0.4.3
the ubuntu default which is 0.3 something has it working, but can't make doors.

i didn't see any setting to change it to "minimal version" though ya, the graphics are much improved from 0.3.x and there is sound, so can probably update that in the website description.

edit to add: oh okay found the minimal, it's the developer version k.
Last edited by streondj on Wed Dec 05, 2012 08:11, edited 1 time in total.

streondj
Member
Posts: 11
Joined: Wed Dec 05, 2012 08:06

by streondj » Post

Hey, so I tested the latest version 0.4.4-dev minetest-game and same problem, furnace out of fuel. both in the minimal, and the game version, same thing for 0.4.3 neither of them have working furnaces.
Last edited by streondj on Wed Dec 05, 2012 17:54, edited 1 time in total.

User avatar
dannydark
Member
Posts: 428
Joined: Fri Aug 12, 2011 21:28
Location: Manchester, UK

by dannydark » Post

streondj wrote:Hey, so I tested the latest version 0.4.4-dev minetest-game and same problem, furnace out of fuel. both in the minimal, and the game version, same thing for 0.4.3 neither of them have working furnaces.
The furnace will show "furnace out of fuel" even if fuel is in it (like PilzAdam said above) it will only change to "Furnace active: %" after you put something into smelt/cook.

streondj
Member
Posts: 11
Joined: Wed Dec 05, 2012 08:06

by streondj » Post

So I managed to get it working in the minimal,
in the game verison doesn't accept anything,
even if there is something to cook (wood -> ),
it's always out of fuel.
So I managed to get it working in the minimal,
in the game verison doesn't accept anything,
even if there is something to cook (wood),
it's always out of fuel.

----
been looking at the source files attempting to identify the issue,
seems like it may be that CRAFT_METHOD_FUEL doesn't have a return statement in craftdef.cpp
wheras CRAFT_METHOD_COOKING does have a return result lines, so would explain why cooking is working.

craftdef.cpp
else if(name == "fuel")
{
def = new CraftDefinitionFuel;
}
.
.
.
CraftInput CraftDefinitionFuel::getInput(const CraftOutput &output, IGameDef *gamedef) const
{
std::vector<std::string> rec;
rec.push_back(recipe);
return CraftInput(CRAFT_METHOD_COOKING,(int)burntime,craftGetItems(rec,gamedef));
}
craftdef.cpp te quote be

I'd think that it should say CRAFT_METHOD_FUEL

anyways if CRAFT_METHOD_FUEL isn't set somewhere, then the check for fuel will always return false

craftdef.cpp
bool CraftDefinitionFuel::check(const CraftInput &input, IGameDef *gamedef) const
{
if(input.method != CRAFT_METHOD_FUEL)
return false;
craftdef.cpp

as it is now, the above line 819 is the only mention of CRAFT_METHOD_FUEL in craftdef.cpp, so it makes sense that it's always false.


---

oh actually i'm not sure, it doesn't seem to make a different about the line now that I double checked, i'll do a full recompile see if it makes a difference.

---
yep there is absolutely no difference but w/e guess it couldn't hurt to patch the typo.
it works same way in minimal, and doesn't work in the game version just the same.

here is the patch anyways
craftdeff.cpp.diff

--- src/craftdef.cpp 2012-12-03 12:44:54.000000000 -0500
+++ ../../test/celeron55-minetest-a47b829/src/craftdef.cpp 2012-12-05 18:55:41.719732317 -0500
@@ -850,7 +850,7 @@
{
std::vector<std::string> rec;
rec.push_back(recipe);
- return CraftInput(CRAFT_METHOD_COOKING,(int)burntime,craftGetItems(rec,gamedef));
+ return CraftInput(CRAFT_METHOD_FUEL,(int)burntime,craftGetItems(rec,gamedef));
}

void CraftDefinitionFuel::decrementInput(CraftInput &input, IGameDef *gamedef) const

craftdeff.cpp.diff te patch be ya


----------------------------------

Okay, I found a rather brutish though simple solution for making furnace work in minetest_game by copying the minmal's default/init.lua overtop of the game's.
so the issue is within init.lua next step is to track it down.

-----

So i subdivided init.lua to make it more manageable into a number of files.
found the issue is in cook.lua

as Omnistudent refered, the problem was in lack of more
cook.lua

minetest.register_craft({
type = "cooking",
output = "default:coal_lump",
recipe = "default:tree",
})

cook.lua

anyways, guess i'll make a tarball of the fix..
----
been looking at the source files attempting to identify the issue,
seems like it may be that CRAFT_METHOD_FUEL doesn't have a return statement in craftdef.cpp
wheras CRAFT_METHOD_COOKING does have a return result lines, so would explain why cooking is working.

craftdef.cpp
else if(name == "fuel")
{
def = new CraftDefinitionFuel;
}
.
.
.
CraftInput CraftDefinitionFuel::getInput(const CraftOutput &output, IGameDef *gamedef) const
{
std::vector<std::string> rec;
rec.push_back(recipe);
return CraftInput(CRAFT_METHOD_COOKING,(int)burntime,craftGetItems(rec,gamedef));
}
craftdef.cpp te quote be

I'd think that it should say CRAFT_METHOD_FUEL

anyways if CRAFT_METHOD_FUEL isn't set somewhere, then the check for fuel will always return false

craftdef.cpp
bool CraftDefinitionFuel::check(const CraftInput &input, IGameDef *gamedef) const
{
if(input.method != CRAFT_METHOD_FUEL)
return false;
craftdef.cpp

as it is now, the above line 819 is the only mention of CRAFT_METHOD_FUEL in craftdef.cpp, so it makes sense that it's always false.


---

oh actually i'm not sure, it doesn't seem to make a different about the line now that I double checked, i'll do a full recompile see if it makes a difference.

---
yep there is absolutely no difference but w/e guess it couldn't hurt to patch the typo.
it works same way in minimal, and doesn't work in the game version just the same.

here is the patch anyways
craftdeff.cpp.diff

--- src/craftdef.cpp 2012-12-03 12:44:54.000000000 -0500
+++ ../../test/celeron55-minetest-a47b829/src/craftdef.cpp 2012-12-05 18:55:41.719732317 -0500
@@ -850,7 +850,7 @@
{
std::vector<std::string> rec;
rec.push_back(recipe);
- return CraftInput(CRAFT_METHOD_COOKING,(int)burntime,craftGetItems(rec,gamedef));
+ return CraftInput(CRAFT_METHOD_FUEL,(int)burntime,craftGetItems(rec,gamedef));
}

void CraftDefinitionFuel::decrementInput(CraftInput &input, IGameDef *gamedef) const

craftdeff.cpp.diff te patch be ya


----------------------------------

Okay, I found a rather brutish though simple solution for making furnace work in minetest_game by copying the minmal's default/init.lua overtop of the game's.
so the issue is within init.lua next step is to track it down.

-----
Last edited by streondj on Thu Dec 06, 2012 04:29, edited 1 time in total.

streondj
Member
Posts: 11
Joined: Wed Dec 05, 2012 08:06

by streondj » Post

Okay is solved,
i subdivided init.lua to make it more manageable into a number of files.
found the issue is in cook.lua

as Omnistudent refered, the problem was in lack of a function in cooking section

cook.lua

minetest.register_craft({
type = "cooking",
output = "default:coal_lump",
recipe = "default:tree",
})

cook.lua

anyways, guess i'll make a tarball of the fix.. it's of the default mod
http://weyounet.info/wp-content/uploads ... od-fix.tgz

Post Reply

Who is online

Users browsing this forum: No registered users and 9 guests