示例#1
0
        public static RegionSerial GetSerial(this Region r)
        {
            if (r == null)
            {
                return(null);
            }

            if (r is PreviewRegion)
            {
                return(((PreviewRegion)r).Serial);
            }

            lock (_Regions)
            {
                if (_Regions.ContainsValue(r))
                {
                    return(_Regions.GetKey(r));
                }

                var s = new RegionSerial(r);

                _Regions.AddOrReplace(s, r);

                //Console.WriteLine("Region Serial: ('{0}', '{1}', '{2}') = {3}", r.GetType().Name, r.Map, r.Name, s.ValueHash);

                return(s);
            }
        }
示例#2
0
 public PreviewRegion(string name, Map map, params Rectangle3D[] area)
     : base(name + " " + _UID++, map, null, area)
 {
     Serial = new RegionSerial(this);
     EnsureDefaults();
 }