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
|
||||
u16 getStackMax(IItemDefManager *itemdef) const
|
||||
{
|
||||
s16 max = itemdef->get(name).stack_max;
|
||||
return (max >= 0) ? max : 0;
|
||||
return itemdef->get(name).stack_max;
|
||||
}
|
||||
|
||||
// Number of items that can be added to this stack
|
||||
u16 freeSpace(IItemDefManager *itemdef) const
|
||||
{
|
||||
u16 max = getStackMax(itemdef);
|
||||
if(count > max)
|
||||
if (count >= max)
|
||||
return 0;
|
||||
return max - count;
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ struct ItemDefinition
|
||||
/*
|
||||
Item stack and interaction properties
|
||||
*/
|
||||
s16 stack_max;
|
||||
u16 stack_max;
|
||||
bool usable;
|
||||
bool liquids_pointable;
|
||||
// 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);
|
||||
|
||||
def.stack_max = getintfield_default(L, index, "stack_max", def.stack_max);
|
||||
if(def.stack_max == 0)
|
||||
def.stack_max = 1;
|
||||
int stack_max = getintfield_default(L, index, "stack_max", def.stack_max);
|
||||
def.stack_max = rangelim(stack_max, 1, U16_MAX);
|
||||
|
||||
lua_getfield(L, index, "on_use");
|
||||
def.usable = lua_isfunction(L, -1);
|
||||
|
Loading…
Reference in New Issue
Block a user