diff --git a/scripts/server/business.js b/scripts/server/business.js index 624d4c86..7fef45b0 100644 --- a/scripts/server/business.js +++ b/scripts/server/business.js @@ -2743,4 +2743,47 @@ function getBusinessFromInteriorAndDimension(dimension, interior) { return -1; } +// =========================================================================== + +function getClosestBusinessWithBuyableItemOfUseType(position, useType) { + let availableBusinesses = getBusinessesWithBuyableItemOfUseType(useType); + + let closestBusiness = 0; + for(let i in availableBusinesses) { + if(getDistance(position, getBusinessData(availableBusinesses[i]).entrancePosition) < getDistance(position, getBusinessData(availableBusinesses[closestBusiness]).entrancePosition)) { + closestBusiness = i; + } + } + return availableBusinesses[closestBusiness]; +} + +// =========================================================================== + +function getBusinessesWithBuyableItemOfUseType(useType) { + let businesses = getServerData().businesses; + for(let i in businesses) { + if(doesBusinessHaveBuyableItemOfUseType(i, useType)) { + availableBusinesses.push(i); + } + } + + return availableBusinesses; +} + +// =========================================================================== + +function doesBusinessHaveBuyableItemOfUseType(businessId, useType) { + let floorItems = getBusinessData(businessId).floorItemCache; + for(let i in floorItems) { + if(floorItems[i] != -1) { + if(getItemData(floorItems[i]) != false) { + if(getItemTypeData(getItemData(floorItems[i])).useType == useType) { + return true; + } + } + } + } + return false; +} + // =========================================================================== \ No newline at end of file