OpenMetaverse.GridManager.MapBlockReplyHandler C# (CSharp) Method

MapBlockReplyHandler() private method

Populate Grid info based on data from MapBlockReplyPacket
private MapBlockReplyHandler ( Packet packet, Simulator simulator ) : void
packet OpenMetaverse.Packets.Packet Incoming MapBlockReplyPacket packet
simulator Simulator Unused
return void
        private void MapBlockReplyHandler(Packet packet, Simulator simulator)
        {
            MapBlockReplyPacket map = (MapBlockReplyPacket)packet;

            foreach (MapBlockReplyPacket.DataBlock block in map.Data)
            {
                if (block.X != 0 && block.Y != 0)
                {
                    GridRegion region;

                    region.X = block.X;
                    region.Y = block.Y;
                    region.Name = Utils.BytesToString(block.Name);
                    // RegionFlags seems to always be zero here?
                    region.RegionFlags = (RegionFlags)block.RegionFlags;
                    region.WaterHeight = block.WaterHeight;
                    region.Agents = block.Agents;
                    region.Access = (SimAccess)block.Access;
                    region.MapImageID = block.MapImageID;
                    region.RegionHandle = Utils.UIntsToLong((uint)(region.X * 256), (uint)(region.Y * 256));

                    lock (Regions)
                    {
                        Regions[region.Name.ToLower()] = region;
                        RegionsByHandle[region.RegionHandle] = region;
                    }

                    if (OnGridRegion != null)
                    {
                        try { OnGridRegion(region); }
                        catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
                    }
                }
            }
        }