private ObjectPart ObjectPartFromDbReader(NpgsqlDataReader dbReader) { var objpart = new ObjectPart(dbReader.GetUUID("ID")) { LoadedLinkNumber = (int)dbReader["LinkNumber"], Position = dbReader.GetVector3("Position"), Rotation = dbReader.GetQuaternion("Rotation"), SitText = (string)dbReader["SitText"], SitAnimation = (string)dbReader["SitAnimation"], TouchText = (string)dbReader["TouchText"], Name = (string)dbReader["Name"], Description = (string)dbReader["Description"], SitTargetOffset = dbReader.GetVector3("SitTargetOffset"), SitTargetOrientation = dbReader.GetQuaternion("SitTargetOrientation"), Creator = dbReader.GetUGUI("Creator"), CreationDate = dbReader.GetDate("CreationDate"), RezDate = dbReader.GetDate("RezDate"), Flags = dbReader.GetEnum <PrimitiveFlags>("Flags"), CameraAtOffset = dbReader.GetVector3("CameraAtOffset"), CameraEyeOffset = dbReader.GetVector3("CameraEyeOffset"), PhysicsShapeType = dbReader.GetEnum <PrimitivePhysicsShapeType>("PhysicsShapeType"), PathfindingType = dbReader.GetEnum <PathfindingType>("PathfindingType"), PathfindingCharacterType = dbReader.GetEnum <CharacterType>("PathfindingCharacterType"), WalkableCoefficientAvatar = (double)dbReader["WalkableCoefficientAvatar"], WalkableCoefficientA = (double)dbReader["WalkableCoefficientA"], WalkableCoefficientB = (double)dbReader["WalkableCoefficientB"], WalkableCoefficientC = (double)dbReader["WalkableCoefficientC"], WalkableCoefficientD = (double)dbReader["WalkableCoefficientD"], Material = dbReader.GetEnum <PrimitiveMaterial>("Material"), Size = dbReader.GetVector3("Size"), MediaURL = (string)dbReader["MediaURL"], AngularVelocity = dbReader.GetVector3("AngularVelocity"), PointLight = new PointLightParam { DbSerialization = dbReader.GetBytes("LightData") }, Projection = new ProjectionParam { DbSerialization = dbReader.GetBytes("ProjectionData"), }, Text = new TextParam { Serialization = dbReader.GetBytes("HoverTextData") }, Flexible = new FlexibleParam { DbSerialization = dbReader.GetBytes("FlexibleData") }, Sound = new SoundParam { Serialization = dbReader.GetBytes("LoopedSoundData") }, CollisionSound = new CollisionSoundParam { Serialization = dbReader.GetBytes("ImpactSoundData") }, Shape = new ObjectPart.PrimitiveShape { Serialization = dbReader.GetBytes("PrimitiveShapeData") }, ParticleSystemBytes = dbReader.GetBytes("ParticleSystem"), TextureEntryBytes = dbReader.GetBytes("TextureEntryBytes"), TextureAnimationBytes = dbReader.GetBytes("TextureAnimationBytes"), ScriptAccessPin = (int)dbReader["ScriptAccessPin"], ForceMouselook = (bool)dbReader["ForceMouselook"], BaseMask = dbReader.GetEnum <InventoryPermissionsMask>("BasePermissions"), OwnerMask = dbReader.GetEnum <InventoryPermissionsMask>("CurrentPermissions"), EveryoneMask = dbReader.GetEnum <InventoryPermissionsMask>("EveryOnePermissions"), GroupMask = dbReader.GetEnum <InventoryPermissionsMask>("GroupPermissions"), NextOwnerMask = dbReader.GetEnum <InventoryPermissionsMask>("NextOwnerPermissions"), ClickAction = dbReader.GetEnum <ClickActionType>("ClickAction"), PassCollisionMode = dbReader.GetEnum <PassEventMode>("PassCollisionMode"), PassTouchMode = dbReader.GetEnum <PassEventMode>("PassTouchMode"), Velocity = dbReader.GetVector3("Velocity"), IsSoundQueueing = (bool)dbReader["IsSoundQueueing"], IsAllowedDrop = (bool)dbReader["IsAllowedDrop"], PhysicsDensity = (double)dbReader["PhysicsDensity"], PhysicsFriction = (double)dbReader["PhysicsFriction"], PhysicsRestitution = (double)dbReader["PhysicsRestitution"], PhysicsGravityMultiplier = (double)dbReader["PhysicsGravityMultiplier"], IsVolumeDetect = (bool)dbReader["IsVolumeDetect"], IsPhantom = (bool)dbReader["IsPhantom"], IsPhysics = (bool)dbReader["IsPhysics"], IsRotateZEnabled = (bool)dbReader["IsRotateZEnabled"], IsRotateXEnabled = (bool)dbReader["IsRotateXEnabled"], IsRotateYEnabled = (bool)dbReader["IsRotateYEnabled"], IsSandbox = (bool)dbReader["IsSandbox"], IsBlockGrab = (bool)dbReader["IsBlockGrab"], IsDieAtEdge = (bool)dbReader["IsDieAtEdge"], IsReturnAtEdge = (bool)dbReader["IsReturnAtEdge"], IsBlockGrabObject = (bool)dbReader["IsBlockGrabObject"], SandboxOrigin = dbReader.GetVector3("SandboxOrigin"), ExtendedMesh = new ExtendedMeshParams { DbSerialization = dbReader.GetBytes("ExtendedMeshData") }, IsSitTargetActive = (bool)dbReader["IsSitTargetActive"], IsScriptedSitOnly = (bool)dbReader["IsScriptedSitOnly"], AllowUnsit = (bool)dbReader["AllowUnsit"], IsUnSitTargetActive = (bool)dbReader["IsUnSitTargetActive"], UnSitTargetOffset = dbReader.GetVector3("UnSitTargetOffset"), UnSitTargetOrientation = dbReader.GetQuaternion("UnSitTargetOrientation"), LocalizationSerialization = dbReader.GetBytes("LocalizationData"), Damage = (double)dbReader["Damage"] }; objpart.AnimationController.DbSerialization = dbReader.GetBytes("AnimationData"); objpart.LoadFromVehicleSerialization(dbReader.GetBytes("VehicleData")); using (var ms = new MemoryStream(dbReader.GetBytes("DynAttrs"))) { foreach (KeyValuePair <string, IValue> kvp in (Map)LlsdBinary.Deserialize(ms)) { objpart.DynAttrs.Add(kvp.Key, kvp.Value); } } return(objpart); }
private ObjectPart ObjectPartFromMap(Map map) { var objpart = new ObjectPart(map["ID"].AsUUID) { LoadedLinkNumber = map["LinkNumber"].AsInt, Position = map["Position"].AsVector3, Rotation = map["Rotation"].AsQuaternion, SitText = map["SitText"].ToString(), TouchText = map["TouchText"].ToString(), Name = map["Name"].ToString(), Description = map["Description"].ToString(), SitTargetOffset = map["SitTargetOffset"].AsVector3, SitTargetOrientation = map["SitTargetOrientation"].AsQuaternion, SitAnimation = map["SitAnimation"].ToString(), Creator = new UGUI(map["Creator"].ToString()), CreationDate = (Date)map["CreationDate"], RezDate = (Date)map["RezDate"], Flags = (PrimitiveFlags)map["Flags"].AsUInt, CameraAtOffset = map["CameraAtOffset"].AsVector3, CameraEyeOffset = map["CameraEyeOffset"].AsVector3, PhysicsShapeType = (PrimitivePhysicsShapeType)map["PhysicsShapeType"].AsInt, PathfindingType = (PathfindingType)map["PathfindingType"].AsInt, PathfindingCharacterType = (CharacterType)map["PathfindingCharacterType"].AsInt, WalkableCoefficientAvatar = map["WalkableCoefficientAvatar"].AsReal, WalkableCoefficientA = map["WalkableCoefficientA"].AsReal, WalkableCoefficientB = map["WalkableCoefficientB"].AsReal, WalkableCoefficientC = map["WalkableCoefficientC"].AsReal, WalkableCoefficientD = map["WalkableCoefficientD"].AsReal, Material = (PrimitiveMaterial)map["Material"].AsInt, Size = map["Size"].AsVector3, MediaURL = map["MediaURL"].ToString(), AngularVelocity = map["AngularVelocity"].AsVector3, Damage = map["Damage"].AsReal, ParticleSystemBytes = (BinaryData)map["ParticleSystem"], TextureEntryBytes = (BinaryData)map["TextureEntryBytes"], TextureAnimationBytes = (BinaryData)map["TextureAnimationBytes"], ScriptAccessPin = map["ScriptAccessPin"].AsInt, ForceMouselook = map["ForceMouselook"].AsBoolean, BaseMask = (InventoryPermissionsMask)map["BasePermissions"].AsUInt, OwnerMask = (InventoryPermissionsMask)map["CurrentPermissions"].AsUInt, EveryoneMask = (InventoryPermissionsMask)map["EveryOnePermissions"].AsUInt, GroupMask = (InventoryPermissionsMask)map["GroupPermissions"].AsUInt, NextOwnerMask = (InventoryPermissionsMask)map["NextOwnerPermissions"].AsUInt, ClickAction = (ClickActionType)map["ClickAction"].AsInt, PointLight = new PointLightParam { DbSerialization = (BinaryData)map["LightData"] }, Projection = new ProjectionParam { DbSerialization = (BinaryData)map["ProjectionData"] }, ExtendedMesh = new ExtendedMeshParams { DbSerialization = (BinaryData)map["ExtendedMeshData"] }, Text = new TextParam { Serialization = (BinaryData)map["HoverTextData"] }, Flexible = new FlexibleParam { DbSerialization = (BinaryData)map["FlexibleData"] }, Sound = new SoundParam { Serialization = (BinaryData)map["LoopedSoundData"] }, CollisionSound = new CollisionSoundParam { Serialization = (BinaryData)map["ImpactSoundData"] }, Shape = new ObjectPart.PrimitiveShape { Serialization = (BinaryData)map["PrimitiveShapeData"] }, PassCollisionMode = (PassEventMode)map["PassCollisionMode"].AsInt, PassTouchMode = (PassEventMode)map["PassTouchMode"].AsInt, Velocity = map["Velocity"].AsVector3, IsSoundQueueing = map["IsSoundQueueing"].AsBoolean, IsAllowedDrop = map["IsAllowedDrop"].AsBoolean, PhysicsDensity = map["PhysicsDensity"].AsReal, PhysicsFriction = map["PhysicsFriction"].AsReal, PhysicsRestitution = map["PhysicsRestitution"].AsReal, PhysicsGravityMultiplier = map["PhysicsGravityMultiplier"].AsReal, IsRotateXEnabled = map["IsRotateXEnabled"].AsBoolean, IsRotateYEnabled = map["IsRotateYEnabled"].AsBoolean, IsRotateZEnabled = map["IsRotateZEnabled"].AsBoolean, IsVolumeDetect = map["IsVolumeDetect"].AsBoolean, IsPhantom = map["IsPhantom"].AsBoolean, IsPhysics = map["IsPhysics"].AsBoolean, IsSandbox = map["IsSandbox"].AsBoolean, IsBlockGrab = map["IsBlockGrab"].AsBoolean, IsDieAtEdge = map["IsDieAtEdge"].AsBoolean, IsReturnAtEdge = map["IsReturnAtEdge"].AsBoolean, IsBlockGrabObject = map["IsBlockGrabObject"].AsBoolean, SandboxOrigin = map["SandboxOrigin"].AsVector3, IsSitTargetActive = map["IsSitTargetActive"].AsBoolean, IsScriptedSitOnly = map["IsScriptedSitOnly"].AsBoolean, AllowUnsit = map["AllowUnsit"].AsBoolean, IsUnSitTargetActive = map["IsUnSitTargetActive"].AsBoolean, UnSitTargetOffset = map["UnSitTargetOffset"].AsVector3, UnSitTargetOrientation = map["UnSitTargetOrientation"].AsQuaternion, LocalizationSerialization = (BinaryData)map["LocalizationData"], }; objpart.AnimationController.DbSerialization = (BinaryData)map["AnimationData"]; objpart.LoadFromVehicleSerialization((BinaryData)map["VehicleData"]); using (var ms = new MemoryStream((BinaryData)map["DynAttrs"])) { foreach (var kvp in (Map)LlsdBinary.Deserialize(ms)) { objpart.DynAttrs.Add(kvp.Key, kvp.Value); } } return(objpart); }