コード例 #1
0
 protected void RegisterExternal(string path)
 {
     try
     {
         ConsoleCommandHandler handler = CoreService.Find <ConsoleCommandHandler>(path);
         if (handler != null)
         {
             Register(handler);
         }
         else
         {
             HostContext.AddUnhandeldException(new SystemException(string.Format("Cannot find console command: {0}", path)));
         }
     }
     catch (Exception e)
     {
         //do nothing here
         HostContext.AddUnhandeldException(e);
     }
 }
コード例 #2
0
 protected override void Load()
 {
     try
     {
         //ADD THE DATABASE PROVIDER
         if (!InternalDatabaseProvider.Connect(info))
         {
             WriteError("DatabaseManager", "Server failed to connect to the database server");
         }
         else if (!InternalDatabaseProvider.CheckServerVersion())
         {
             WriteError("DatabaseManager", "Database version is incorrect");
         }
         else if (!InternalDatabaseProvider.CheckDatabaseFields())
         {
             WriteError("DatabaseManager", "Database is missing tables or required table fields");
         }
     }
     catch (Exception e)
     {
         HostContext.AddUnhandeldException(e);
     }
 }
コード例 #3
0
        protected override void ParseAsCsvStream(Stream stream, FactoryBase.ReportProgress ProgressReport)
        {
            using (StreamReader c = new StreamReader(stream))
            {
                c.ReadLine();
                while (c.Peek() > 0)
                {
                    //REPORT PROGRESS
                    ProgressReport.Invoke();
                    String   row    = c.ReadLine();
                    String[] fields = row.Split(',');

                    try
                    {
                        int    Flags           = 0;
                        byte   eventid         = Convert.ToByte(fields[0]);  //Unique id of the event
                        byte   UseDate         = Convert.ToByte(fields[6]);  //1   - Use a date to check
                        byte   UseTime         = Convert.ToByte(fields[7]);  //2   - Use a timespan to check
                        byte   EnableMonday    = Convert.ToByte(fields[8]);  //4   - Is active on monday
                        byte   EnableThuesday  = Convert.ToByte(fields[9]);  //8   - Is active on thuesday
                        byte   EnableWednesday = Convert.ToByte(fields[10]); //16  - Is active on wednessday
                        byte   EnableThursday  = Convert.ToByte(fields[11]); //32  - Is active on thursday
                        byte   EnableFriday    = Convert.ToByte(fields[12]); //64  - Is active on friday
                        byte   EnableSaturday  = Convert.ToByte(fields[13]); //128 - Is active on saturday
                        byte   EnableSunday    = Convert.ToByte(fields[14]); //256 - Is active on sunday
                        string EventName       = fields[1];                  //Name of the event

                        if (UseDate == 1)
                        {
                            Flags |= 1;
                        }
                        if (UseTime == 1)
                        {
                            Flags |= 2;
                        }
                        if (EnableMonday == 1)
                        {
                            Flags |= 4;
                        }
                        if (EnableThuesday == 1)
                        {
                            Flags |= 8;
                        }
                        if (EnableWednesday == 1)
                        {
                            Flags |= 16;
                        }
                        if (EnableThursday == 1)
                        {
                            Flags |= 32;
                        }
                        if (EnableFriday == 1)
                        {
                            Flags |= 64;
                        }
                        if (EnableSaturday == 1)
                        {
                            Flags |= 128;
                        }
                        if (EnableSunday == 1)
                        {
                            Flags |= 256;
                        }

                        DateTime eventstart = DateTime.Parse(fields[2], CultureInfo.InvariantCulture);
                        DateTime eventend   = DateTime.Parse(fields[3], CultureInfo.InvariantCulture);
                        TimeSpan timestart  = TimeSpan.Parse(fields[4]);
                        TimeSpan timetend   = TimeSpan.Parse(fields[5]);

                        EventDateTime date = new EventDateTime();
                        date.end       = eventend.Add(timetend);
                        date.start     = eventstart.Add(timestart);
                        date.eventname = EventName;
                        date.Flags     = Flags;
                        if (CanCheckTimespan(date))
                        {
                            date.IsActive = IsActiveToday(date) && IsBetweenDateTime(date) && IsBetweenTimeStamp(date);
                        }
                        else
                        {
                            date.IsActive = true;
                        }

                        _eventdates.Add(eventid, date);
                    }
                    catch (Exception e)
                    {
                        HostContext.AddUnhandeldException(e);
                    }
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// Default included event that invokes a csv based stream.
        /// </summary>
        /// <param name="stream">Stream to read data from</param>
        /// <param name="ProgressReport">Class to report the state of reading</param>
        protected override void ParseAsCsvStream(Stream stream, FactoryBase.ReportProgress ProgressReport)
        {
            using (StreamReader c = new StreamReader(stream))
            {
                c.ReadLine();
                while (c.Peek() > 0)
                {
                    //REPORT PROGRESS
                    ProgressReport.Invoke();
                    String   row    = c.ReadLine();
                    String[] fields = row.Split(',');

                    //LOAD A HEIGHTMAP
                    HeightMap heightmap          = new HeightMap();
                    HeightMap.HeightMapInfo info = new HeightMap.HeightMapInfo();

                    try
                    {
                        //FILL OUT HEIGHTMAP INFORMATION
                        string filename = Path.Combine(Environment.CurrentDirectory, dirHeightmap);
                        if (fields[10].Length > 0)
                        {
                            info.location[0] = float.Parse(fields[12], NumberFormatInfo.InvariantInfo);
                            info.location[1] = float.Parse(fields[13], NumberFormatInfo.InvariantInfo);
                            info.location[2] = float.Parse(fields[14], NumberFormatInfo.InvariantInfo);
                            info.scale[0]    = int.Parse(fields[15], NumberFormatInfo.InvariantInfo);
                            info.scale[1]    = int.Parse(fields[16], NumberFormatInfo.InvariantInfo);
                            info.scale[2]    = int.Parse(fields[17], NumberFormatInfo.InvariantInfo);
                            info.size        = int.Parse(fields[11], NumberFormatInfo.InvariantInfo);
                            filename         = Path.Combine(filename, fields[10]);

                            //IF HEIGHTMAP IS NOT LOADED PROCEED
                            HeightMap.LoadFromFile(filename, info, out heightmap);
                        }

                        float    catheleyax   = float.Parse(fields[2], NumberFormatInfo.InvariantInfo);
                        float    catheleyay   = float.Parse(fields[3], NumberFormatInfo.InvariantInfo);
                        float    catheleyaz   = float.Parse(fields[4], NumberFormatInfo.InvariantInfo);
                        float    promisex     = float.Parse(fields[6], NumberFormatInfo.InvariantInfo);
                        float    promisey     = float.Parse(fields[7], NumberFormatInfo.InvariantInfo);
                        float    promizez     = float.Parse(fields[8], NumberFormatInfo.InvariantInfo);
                        byte     catheleyamap = byte.Parse(fields[5], NumberFormatInfo.InvariantInfo);
                        byte     promisemap   = byte.Parse(fields[9], NumberFormatInfo.InvariantInfo);
                        uint     regioncode   = uint.Parse(fields[19], NumberFormatInfo.InvariantInfo);
                        uint     zoneid       = uint.Parse(fields[0], NumberFormatInfo.InvariantInfo);
                        ZoneType zonetype     = (ZoneType)Enum.Parse(typeof(ZoneType), fields[18], true);
                        Zone     zone;

                        if (TryFindZoneString(fields[1], out zone))
                        {
                            SetMembers(zone, (byte)zoneid, heightmap, zonetype,
                                       catheleyamap, new Point(catheleyax, catheleyay, catheleyaz),
                                       promisemap, new Point(promisex, promisey, promizez),
                                       regioncode);

                            maps.Add(zoneid, zone);
                        }
                    }
                    catch (Exception e)
                    {
                        HostContext.AddUnhandeldException(e);
                    }
                }
            }
        }