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); }
/// <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 }; }
/// <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); }
/// <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 }; }
/// <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); }
public CrawlerContext() { CommandQueue = new EntityQueue<Command>(); }
public Entity GetEntity(Guid uid) { return(Entities.Find(e => e.UID == uid) ?? EntityQueue.Find(e => e.UID == uid)); }