forked from Mirrorlandia_minetest/minetest
Craftdef.cpp: Improve loop and mathematics for CraftDefinitionShaped::check
This commit is contained in:
parent
dd2bb950be
commit
368496b612
@ -418,27 +418,28 @@ bool CraftDefinitionShaped::check(const CraftInput &input, IGameDef *gamedef) co
|
|||||||
return false; // it was empty
|
return false; // it was empty
|
||||||
|
|
||||||
// Different sizes?
|
// Different sizes?
|
||||||
if(inp_max_x - inp_min_x != rec_max_x - rec_min_x)
|
if(inp_max_x - inp_min_x != rec_max_x - rec_min_x ||
|
||||||
return false;
|
inp_max_y - inp_min_y != rec_max_y - rec_min_y)
|
||||||
if(inp_max_y - inp_min_y != rec_max_y - rec_min_y)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Verify that all item names in the bounding box are equal
|
// Verify that all item names in the bounding box are equal
|
||||||
unsigned int w = inp_max_x - inp_min_x + 1;
|
unsigned int w = inp_max_x - inp_min_x + 1;
|
||||||
unsigned int h = inp_max_y - inp_min_y + 1;
|
unsigned int h = inp_max_y - inp_min_y + 1;
|
||||||
for(unsigned int y=0; y<h; y++)
|
|
||||||
for(unsigned int x=0; x<w; x++)
|
|
||||||
{
|
|
||||||
unsigned int inp_x = inp_min_x + x;
|
|
||||||
unsigned int inp_y = inp_min_y + y;
|
|
||||||
unsigned int rec_x = rec_min_x + x;
|
|
||||||
unsigned int rec_y = rec_min_y + y;
|
|
||||||
|
|
||||||
if(!inputItemMatchesRecipe(
|
for(unsigned int y=0; y < h; y++) {
|
||||||
inp_names[inp_y * inp_width + inp_x],
|
unsigned int inp_y = (inp_min_y + y) * inp_width;
|
||||||
rec_names[rec_y * rec_width + rec_x], gamedef->idef())
|
unsigned int rec_y = (rec_min_y + y) * rec_width;
|
||||||
){
|
|
||||||
return false;
|
for(unsigned int x=0; x < w; x++) {
|
||||||
|
unsigned int inp_x = inp_min_x + x;
|
||||||
|
unsigned int rec_x = rec_min_x + x;
|
||||||
|
|
||||||
|
if(!inputItemMatchesRecipe(
|
||||||
|
inp_names[inp_y + inp_x],
|
||||||
|
rec_names[rec_y + rec_x], gamedef->idef())
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user