/// <summary>
        /// If the landblock is loaded, return a reference to the current House object
        /// else return a copy of the House biota from the latest info in the db
        ///
        /// <param name="callback">called when the slumlord inventory is fully loaded</param>
        public static void GetHouse(uint houseGuid, Action <House> callback)
        {
            var landblock = (houseGuid << 4) | 0xFFFF;

            var isLoaded = LandblockManager.IsLoaded(landblock);

            if (!isLoaded)
            {
                // landblock is unloaded
                // return a copy of the House biota from the latest info in the db
                var houseBiota = House.Load(houseGuid);

                RegisterCallback(houseBiota, callback);

                return;
            }

            // landblock is loaded, return a reference to the current House object
            var loaded = LandblockManager.GetLandblockBase(landblock, false);
            var house  = loaded.GetObject(new ObjectGuid(houseGuid)) as House;

            if (house != null && house.SlumLord != null)
            {
                if (!house.SlumLord.InventoryLoaded)
                {
                    RegisterCallback(house, callback);
                }
                else
                {
                    callback(house);
                }
            }
            else if (!loaded.CreateWorldObjectsCompleted)
            {
                var houseBiota = House.Load(houseGuid);

                RegisterCallback(houseBiota, callback);
            }
            else
            {
                log.Error($"HouseManager.GetHouse({houseGuid:X8}): couldn't find house on loaded landblock");
            }
        }