public static void DbSqlItems <TKey>(DbDebugItem <TKey> debug, AbstractDb <TKey> db) { DbSqlWriter writer = new DbSqlWriter(); writer.Init(debug); if (debug.DestinationServer == ServerType.RAthena) { DbWriterMethods.DbItemsCommaWriter(debug, db); writer.AppendHeader(writer.IsRenewal ? RAthenaItemDbSqlHeaderRenewal : RAthenaItemDbSqlHeader); foreach (string line in writer.Read()) { string[] elements = TextFileHelper.ExcludeBrackets(line.Trim('\t')); if (!_getItems(writer.IsRenewal, writer.TableName, writer.Builder, elements)) { writer.Line(line.ReplaceFirst("//", "#")); } } } else { var table = db.Table; writer.AppendHeader(HerculesItemDbSqlHeader, writer.TableName.Replace("_re", "")); foreach (var tuple in table.FastItems.OrderBy(p => p.GetKey <TKey>())) { _getItemsHercules(writer.TableName, writer.Builder, tuple); } } writer.Write(); }
public override void WriteDb(string dbPath, string subPath, ServerType serverType, FileType fileType = FileType.Detect) { DbDebugItem <int> debug = new DbDebugItem <int>(this); debug.DbSource = DbSource; if (debug.Write(dbPath, subPath, serverType, fileType)) { DbWriterMethods.DbItemsCommaWriter(debug, this); } if (serverType == ServerType.RAthena) { debug.DbSource = ServerDbs.ItemsAvail; if (debug.Write(dbPath, subPath, serverType, fileType)) { DbWriterMethods.DbItemsCommaRange(debug, this, ServerItemAttributes.Sprite.Index, 1, ""); } debug.DbSource = ServerDbs.ItemsDelay; if (debug.Write(dbPath, subPath, serverType, fileType)) { DbWriterMethods.DbItemsCommaRange(debug, this, ServerItemAttributes.Delay.Index, 1, ""); } debug.DbSource = ServerDbs.ItemsNoUse; if (debug.Write(dbPath, subPath, serverType, fileType)) { DbWriterMethods.DbItemsNouse(debug, this); } debug.DbSource = ServerDbs.ItemsStack; if (debug.Write(dbPath, subPath, serverType, fileType)) { DbWriterMethods.DbItemsStack(debug, this); } debug.DbSource = ServerDbs.ItemsTrade; if (debug.Write(dbPath, subPath, serverType, fileType)) { DbWriterMethods.DbItemsTrade(debug, this); } debug.DbSource = ServerDbs.ItemsBuyingStore; if (debug.Write(dbPath, subPath, serverType, fileType)) { DbWriterMethods.DbItemsBuyingStore(debug, this); } } }