using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace StockholmTools { public class PublicFurniImporter { public string WriteSql(string input, int roomId) { input = input.Replace(Convert.ToChar(13).ToString(), ""); input = input.Replace(Convert.ToChar(10).ToString(), ""); StringBuilder sqlOut = new StringBuilder(); string[] items = input.Split('|'); sqlOut.Append("DECLARE @id int;\r\n"); foreach (string item in items) { string[] itemParts = item.Split(' '); string sprite = itemParts[1]; string x = itemParts[2]; string y = itemParts[3]; string z = itemParts[4]; string r = itemParts[5]; string physicsName = "furnipublic_" + sprite; sqlOut.Append("Print 'Handling Physics Object: " + physicsName + "'\r\n"); sqlOut.Append("IF (SELECT COUNT(*) FROM PhysicsObjects WHERE PhysicsName = '" + physicsName + "') = 0\r\n"); sqlOut.Append("BEGIN\r\n"); sqlOut.Append("INSERT INTO PhysicsObjects (PhysicsName)"); sqlOut.Append(" VALUES ('" + physicsName + "');\r\n"); sqlOut.Append("SET @id = @@identity\r\n"); sqlOut.Append("END\r\n"); sqlOut.Append("ELSE\r\n"); sqlOut.Append("BEGIN\r\n"); sqlOut.Append("SET @id = (SELECT PhysicsID FROM PhysicsObjects WHERE PhysicsName = '" + physicsName + "')\r\n"); sqlOut.Append("END\r\n"); sqlOut.Append("PRINT @id\r\n"); sqlOut.Append("Print 'Handling Furni Definition: " + sprite + "'\r\n"); sqlOut.Append("IF (SELECT COUNT(*) FROM FurniDefinitions WHERE Sprite = '" + sprite + "') = 0\r\n"); sqlOut.Append("BEGIN\r\n"); sqlOut.Append("INSERT INTO FurniDefinitions (PhysicsObjectID, CanBeTraded, Sprite)"); sqlOut.Append(" VALUES (@id, 0, '" + sprite + "');\r\n"); sqlOut.Append("SET @id = @@identity\r\n"); sqlOut.Append("END\r\n"); sqlOut.Append("ELSE\r\n"); sqlOut.Append("BEGIN\r\n"); sqlOut.Append("SET @id = (SELECT DefinitionID FROM FurniDefinitions WHERE Sprite = '" + sprite + "')\r\n"); sqlOut.Append("END\r\n"); sqlOut.Append("PRINT @id\r\n"); sqlOut.Append("\r\n"); sqlOut.Append("Print 'Handling Adding Item'\r\n"); sqlOut.Append("IF (SELECT COUNT(*) FROM Furni WHERE DefinitionID = @id AND PositionX = " + x + " AND PositionY = " + y + " AND RoomID = " + roomId + ") = 0\r\n"); sqlOut.Append("BEGIN\r\n"); sqlOut.Append("INSERT INTO Furni (RoomID, DefinitionID, PositionX, PositionY, PositionZ, Orientation) "); sqlOut.Append("VALUES (" + roomId + ", @id, " + x + ", " + y + ", " + z + ", " + r + ");\r\n"); sqlOut.Append("END\r\n"); sqlOut.Append("\r\n"); sqlOut.Append("\r\n"); sqlOut.Append("Print 'Done'\r\n"); } return sqlOut.ToString(); } } }