/// <summary>
        /// Gather all the zones defined on buypoints
        /// </summary>
        /// <remarks>This also sets the zone on the buypoint</remarks>
        /// <returns></returns>
        protected HashSet <string> GatherZones()
        {
            HashSet <string> zones = new HashSet <string>();

            lock (Game.BuyPoints)
            {
                foreach (BuyPoint bp in Game.BuyPoints.Values)
                {
                    string configuration = m_controller.Dispatcher.FetchBuyPointConfiguration(bp);

                    if (configuration != null)
                    {
                        IConfigSource configSource = GameModelConfigurationParser.Parse(configuration);
                        IConfig       gmConfig
                            = GameModelConfigurationParser.GetConfig(
                                  configSource, GameModelConfigurationParser.GENERAL_SECTION_NAME);
                        bp.Zone = gmConfig.GetString(GameModelConfigurationParser.ZONE_KEY, null);

//                        m_log.InfoFormat(
//                           "[WATER WARS]: Found configured zone [{0}] for {1} in {2}", bp.Zone, bp.Name, bp.RegionName);
                    }

                    string zone = bp.Zone;

                    if (zone != null)
                    {
                        zones.Add(zone);
                    }
                }
            }

            return(zones);
        }
//        protected void OnObjectAddedToScene(SceneObjectGroup sog)
//        {
//            m_log.InfoFormat(
//                "[WATER WARS]: Got notice of {0} {1} at {2} added to scene",
//                sog.Name, sog.LocalId, sog.AbsolutePosition);
//
////            if (sog.Name == GameManager.IN_WORLD_NAME)
////                new GameManager(this, sog);
//        }

        /// <summary>
        /// Get our configuration object from a given prim
        /// </summary>
        /// <param name="so"></param>
        /// <returns>The config found, null if none could be found</returns>
        protected IConfig GetPrimConfig(SceneObjectGroup so)
        {
            IConfig config = null;

            IList <TaskInventoryItem> gmConfigItems
                = so.RootPart.Inventory.GetInventoryItems(WaterWarsConstants.REGISTRATION_INI_NAME);

            if (gmConfigItems.Count > 0)
            {
                AssetBase     asset = Scenes[0].AssetService.Get(gmConfigItems[0].AssetID.ToString());
                IConfigSource gmConfigSource
                    = GameModelConfigurationParser.Parse(
                          SLUtil.ParseNotecardToString(Encoding.UTF8.GetString(asset.Data)));
                config = gmConfigSource.Configs[GameModelConfigurationParser.GENERAL_SECTION_NAME];
            }

            return(config);
        }