At present, these 2 functions allow us to check a given house's maximum furniture limits as well as how many furnishings of a given limit type have already been placed in the current house.
GetHouseFurnishingPlacementLimit(number houseId, number HousingFurnishingLimitType limitType)
GetNumHouseFurnishingsPlaced(number HousingFurnishingLimitType limitType)
In order to preempt avoidable failures when adding furniture to players' houses, it would be helpful to have a way to identify the relevant limit type for each item (ahead of time) prior to ever attempting to add furnishings en masse.
This is particularly important for identifying whether an item is Low Impact or High Impact within each of the two primary (Collectible/Non-Collectible) categories. Ideally, the solution work on both Placed furniture (e.g. passing a Furniture Id) as well as Inventory items and Collectibles.
From what I can see, a simple way to address this would be to add the relevant LimitType for a given furnishing to the FurnitureDataInfo structure as we already have functions for getting the FurnitureDataId for an item that is: placed in a house, a collectible, an inventory item or an item link.
If the GetFurnitureDataInfo function were amended to return an addition limitType value, that would solve the problem from every angle that I can see:
function GetFurnitureDataInfo(number furnitureDataId)
number FurnitureThemeType furnitureTheme
Consider changing to return:
number FurnitureThemeType furnitureTheme,
number HousingFurnishingLimitType limitType