forked from Mirrorlandia_minetest/minetest
Make getStackMax return the correct maximal stack size
This commit is contained in:
parent
aa33166386
commit
2de8c22a99
@ -80,15 +80,14 @@ struct ItemStack
|
|||||||
// Maximum size of a stack
|
// Maximum size of a stack
|
||||||
u16 getStackMax(IItemDefManager *itemdef) const
|
u16 getStackMax(IItemDefManager *itemdef) const
|
||||||
{
|
{
|
||||||
s16 max = itemdef->get(name).stack_max;
|
return itemdef->get(name).stack_max;
|
||||||
return (max >= 0) ? max : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Number of items that can be added to this stack
|
// Number of items that can be added to this stack
|
||||||
u16 freeSpace(IItemDefManager *itemdef) const
|
u16 freeSpace(IItemDefManager *itemdef) const
|
||||||
{
|
{
|
||||||
u16 max = getStackMax(itemdef);
|
u16 max = getStackMax(itemdef);
|
||||||
if(count > max)
|
if (count >= max)
|
||||||
return 0;
|
return 0;
|
||||||
return max - count;
|
return max - count;
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ struct ItemDefinition
|
|||||||
/*
|
/*
|
||||||
Item stack and interaction properties
|
Item stack and interaction properties
|
||||||
*/
|
*/
|
||||||
s16 stack_max;
|
u16 stack_max;
|
||||||
bool usable;
|
bool usable;
|
||||||
bool liquids_pointable;
|
bool liquids_pointable;
|
||||||
// May be NULL. If non-NULL, deleted by destructor
|
// May be NULL. If non-NULL, deleted by destructor
|
||||||
|
@ -65,9 +65,8 @@ ItemDefinition read_item_definition(lua_State* L,int index,
|
|||||||
}
|
}
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1);
|
||||||
|
|
||||||
def.stack_max = getintfield_default(L, index, "stack_max", def.stack_max);
|
int stack_max = getintfield_default(L, index, "stack_max", def.stack_max);
|
||||||
if(def.stack_max == 0)
|
def.stack_max = rangelim(stack_max, 1, U16_MAX);
|
||||||
def.stack_max = 1;
|
|
||||||
|
|
||||||
lua_getfield(L, index, "on_use");
|
lua_getfield(L, index, "on_use");
|
||||||
def.usable = lua_isfunction(L, -1);
|
def.usable = lua_isfunction(L, -1);
|
||||||
|
Loading…
Reference in New Issue
Block a user