コード例 #1
0
        public void Serialize(BinaryWriter writer)
        {
            writer.Write(Camera);
            writer.Write(CameraControls);

            // Planet info
            writer.Write(Planet.Seed);

            // Terrain
            writer.Write((Int16)Components.Count);
            Components.ForEach(c => DeserializationRegister.WriteObject(writer, c));

            //TODO: weather

            // Entities
            writer.Write((Int16)(Entities.Count(e => e.ShouldSave) + EntityQueue.Count(e => e.ShouldSave)));
            Entities.ForEach(e => { if (e.ShouldSave)
                                    {
                                        e.Serialize(writer);
                                    }
                             });
            EntityQueue.ForEach(e => { if (e.ShouldSave)
                                       {
                                           e.Serialize(writer);
                                       }
                                });

            // Time
            writer.Write(TimeScale);
        }
コード例 #2
0
ファイル: DAL.cs プロジェクト: tommybiteme/X
        /// <summary>构造函数</summary>
        /// <param name="connName">配置名</param>
        private DAL(String connName)
        {
            _ConnName = connName;

            //if (!ConnStrs.ContainsKey(connName)) throw new XCodeException("请在使用数据库前设置[" + connName + "]连接字符串");
            if (!ConnStrs.ContainsKey(connName))
            {
                var set = Setting.Current;
                var dbpath = set.SQLiteDbPath;
                if (dbpath.IsNullOrEmpty())
                {
                    dbpath = ".";
                    if (Runtime.IsWeb)
                    {
                        if (!Environment.CurrentDirectory.Contains("iisexpress") ||
                            !Environment.CurrentDirectory.Contains("Web"))
                            dbpath = "..\\Data";
                        else
                            dbpath = "~\\App_Data";
                    }
                    set.SQLiteDbPath = dbpath;
                    set.Save();
                }
                var connstr = "Data Source=" + dbpath.GetFullPath().CombinePath(connName + ".db");
                WriteLog("自动为[{0}]设置连接字符串:{1}", connName, connstr);
                AddConnStr(connName, connstr, null, "SQLite");
            }

            _ConnStr = ConnStrs[connName].ConnectionString;
            if (String.IsNullOrEmpty(_ConnStr)) throw new XCodeException("请在使用数据库前设置[" + connName + "]连接字符串");

            Queue = new EntityQueue { Dal = this };
        }
コード例 #3
0
 /// <summary>
 /// Insert the entity into the world.
 /// </summary>
 /// <returns>The entity for chaining.</returns>
 /// <param name="ent">The entity to add.</param>
 public Entity SpawnEntity(Entity ent)
 {
     lock (EntityQueue)
     {
         if (!Entities.Contains(ent) && !EntityQueue.Contains(ent))
         {
             EntityQueue.Add(ent);
         }
     }
     return(ent);
 }
コード例 #4
0
ファイル: DAL.cs プロジェクト: zzmzaizai/X
        /// <summary>构造函数</summary>
        /// <param name="connName">配置名</param>
        private DAL(String connName)
        {
            _ConnName = connName;

            //if (!ConnStrs.ContainsKey(connName)) throw new XCodeException("请在使用数据库前设置[" + connName + "]连接字符串");
            if (!ConnStrs.ContainsKey(connName))
            {
                var set    = Setting.Current;
                var dbpath = set.SQLiteDbPath;
                if (dbpath.IsNullOrEmpty())
                {
                    dbpath = ".";
                    if (Runtime.IsWeb)
                    {
                        if (!Environment.CurrentDirectory.Contains("iisexpress") ||
                            !Environment.CurrentDirectory.Contains("Web"))
                        {
                            dbpath = "..\\Data";
                        }
                        else
                        {
                            dbpath = "~\\App_Data";
                        }
                    }
                    set.SQLiteDbPath = dbpath;
                    set.Save();
                }
                var connstr = "Data Source=" + dbpath.GetFullPath().CombinePath(connName + ".db");
                WriteLog("自动为[{0}]设置连接字符串:{1}", connName, connstr);
                AddConnStr(connName, connstr, null, "SQLite");
            }

            _ConnStr = ConnStrs[connName].ConnectionString;
            if (String.IsNullOrEmpty(_ConnStr))
            {
                throw new XCodeException("请在使用数据库前设置[" + connName + "]连接字符串");
            }

            Queue = new EntityQueue {
                Dal = this
            };
        }
コード例 #5
0
        /// <summary>构造函数</summary>
        /// <param name="connName">配置名</param>
        private DAL(String connName)
        {
            _ConnName = connName;

            //if (!ConnStrs.ContainsKey(connName)) throw new XCodeException("请在使用数据库前设置[" + connName + "]连接字符串");
            if (!ConnStrs.ContainsKey(connName))
            {
                var connstr = "Data Source=" + Setting.Current.SQLiteDbPath.CombinePath(connName + ".db;Migration=On");
                WriteLog("自动为[{0}]设置SQLite连接字符串:{1}", connName, connstr);
                AddConnStr(connName, connstr, null, "SQLite");
            }

            _ConnStr = ConnStrs[connName];
            if (_ConnStr.IsNullOrEmpty())
            {
                throw new XCodeException("请在使用数据库前设置[" + connName + "]连接字符串");
            }

            Queue = new EntityQueue(this);
        }
コード例 #6
0
 public CrawlerContext()
 {
     CommandQueue = new EntityQueue<Command>();
 }
コード例 #7
0
 public Entity GetEntity(Guid uid)
 {
     return(Entities.Find(e => e.UID == uid) ?? EntityQueue.Find(e => e.UID == uid));
 }