diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs | 59 |
1 files changed, 52 insertions, 7 deletions
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs index 6400d29..7de9232 100644 --- a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs +++ b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs | |||
@@ -7,12 +7,12 @@ using OpenSim.Region.Environment.LandManagement; | |||
7 | using OpenSim.Region.Environment; | 7 | using OpenSim.Region.Environment; |
8 | using OpenSim.Region.Interfaces; | 8 | using OpenSim.Region.Interfaces; |
9 | using OpenSim.Framework.Console; | 9 | using OpenSim.Framework.Console; |
10 | using OpenSim.Framework.Types; | ||
10 | using libsecondlife; | 11 | using libsecondlife; |
11 | 12 | ||
12 | using System.Data; | 13 | using System.Data; |
13 | // Yes, this won't compile on MS, need to deal with that later | 14 | // Yes, this won't compile on MS, need to deal with that later |
14 | using Mono.Data.SqliteClient; | 15 | using Mono.Data.SqliteClient; |
15 | using Primitive = OpenSim.Region.Environment.Scenes.Primitive; | ||
16 | 16 | ||
17 | namespace OpenSim.DataStore.MonoSqliteStorage | 17 | namespace OpenSim.DataStore.MonoSqliteStorage |
18 | { | 18 | { |
@@ -233,11 +233,47 @@ namespace OpenSim.DataStore.MonoSqliteStorage | |||
233 | private void fillPrimRow(DataRow row, SceneObjectPart prim) | 233 | private void fillPrimRow(DataRow row, SceneObjectPart prim) |
234 | { | 234 | { |
235 | row["UUID"] = prim.UUID; | 235 | row["UUID"] = prim.UUID; |
236 | row["ParentID"] = prim.ParentID; | ||
236 | row["CreationDate"] = prim.CreationDate; | 237 | row["CreationDate"] = prim.CreationDate; |
237 | row["Name"] = prim.PartName; | 238 | row["Name"] = prim.PartName; |
239 | // various text fields | ||
240 | row["Text"] = prim.Text; | ||
241 | row["Description"] = prim.Description; | ||
242 | row["SitName"] = prim.SitName; | ||
243 | row["TouchName"] = prim.TouchName; | ||
244 | // permissions | ||
245 | row["CreatorID"] = prim.CreatorID; | ||
246 | row["OwnerID"] = prim.OwnerID; | ||
247 | row["GroupID"] = prim.GroupID; | ||
248 | row["LastOwnerID"] = prim.LastOwnerID; | ||
249 | row["OwnerMask"] = prim.OwnerMask; | ||
250 | row["NextOwnerMask"] = prim.NextOwnerMask; | ||
251 | row["GroupMask"] = prim.GroupMask; | ||
252 | row["EveryoneMask"] = prim.EveryoneMask; | ||
253 | row["BaseMask"] = prim.BaseMask; | ||
254 | // vectors | ||
238 | row["PositionX"] = prim.OffsetPosition.X; | 255 | row["PositionX"] = prim.OffsetPosition.X; |
239 | row["PositionY"] = prim.OffsetPosition.Y; | 256 | row["PositionY"] = prim.OffsetPosition.Y; |
240 | row["PositionZ"] = prim.OffsetPosition.Z; | 257 | row["PositionZ"] = prim.OffsetPosition.Z; |
258 | row["VelocityX"] = prim.Velocity.X; | ||
259 | row["VelocityY"] = prim.Velocity.Y; | ||
260 | row["VelocityZ"] = prim.Velocity.Z; | ||
261 | row["AngularVelocityX"] = prim.AngularVelocity.X; | ||
262 | row["AngularVelocityY"] = prim.AngularVelocity.Y; | ||
263 | row["AngularVelocityZ"] = prim.AngularVelocity.Z; | ||
264 | row["AccelerationX"] = prim.Acceleration.X; | ||
265 | row["AccelerationY"] = prim.Acceleration.Y; | ||
266 | row["AccelerationZ"] = prim.Acceleration.Z; | ||
267 | // quaternions | ||
268 | row["RotationX"] = prim.RotationOffset.X; | ||
269 | row["RotationY"] = prim.RotationOffset.Y; | ||
270 | row["RotationZ"] = prim.RotationOffset.Z; | ||
271 | row["RotationW"] = prim.RotationOffset.W; | ||
272 | } | ||
273 | |||
274 | private void fillShapeRow(DataRow row, PrimitiveBaseShape shape) | ||
275 | { | ||
276 | |||
241 | } | 277 | } |
242 | 278 | ||
243 | private void addPrim(SceneObjectPart prim) | 279 | private void addPrim(SceneObjectPart prim) |
@@ -245,13 +281,22 @@ namespace OpenSim.DataStore.MonoSqliteStorage | |||
245 | DataTable prims = ds.Tables["prims"]; | 281 | DataTable prims = ds.Tables["prims"]; |
246 | DataTable shapes = ds.Tables["shapes"]; | 282 | DataTable shapes = ds.Tables["shapes"]; |
247 | 283 | ||
248 | DataRow row = prims.Rows.Find(prim.UUID); | 284 | DataRow primRow = prims.Rows.Find(prim.UUID); |
249 | if (row == null) { | 285 | if (primRow == null) { |
250 | row = prims.NewRow(); | 286 | primRow = prims.NewRow(); |
251 | // fillPrimRow(row, prim); | 287 | fillPrimRow(primRow, prim); |
252 | prims.Rows.Add(row); | 288 | prims.Rows.Add(primRow); |
289 | } else { | ||
290 | fillPrimRow(primRow, prim); | ||
291 | } | ||
292 | |||
293 | DataRow shapeRow = shapes.Rows.Find(prim.UUID); | ||
294 | if (shapeRow == null) { | ||
295 | shapeRow = prims.NewRow(); | ||
296 | fillShapeRow(shapeRow, prim.Shape); | ||
297 | prims.Rows.Add(shapeRow); | ||
253 | } else { | 298 | } else { |
254 | fillPrimRow(row, prim); | 299 | fillPrimRow(shapeRow, prim); |
255 | } | 300 | } |
256 | } | 301 | } |
257 | 302 | ||