/// <summary> /// Create a completely new SceneObjectPart (prim). This will need to be added separately to a SceneObjectGroup /// </summary> /// <param name="ownerID"></param> /// <param name="shape"></param> /// <param name="groupPosition"></param> /// <param name="rotationOffset"></param> /// <param name="offsetPosition"></param> /// <param name="name"></param> public SceneObjectPart( UUID ownerID, PrimitiveBaseShape shape, Vector3 groupPosition, Quaternion rotationOffset, Vector3 offsetPosition, string name) { m_name = name; CreationDate = (int) Utils.DateTimeToUnixTime(DateTime.Now); _ownerID = ownerID; _creatorID = _ownerID; LastOwnerID = UUID.Zero; UUID = UUID.Random(); Shape = shape; CRC = 1; _ownershipCost = 0; _flags = 0; _groupID = UUID.Zero; _objectSaleType = 0; _salePrice = 0; _category = 0; LastOwnerID = _creatorID; m_groupPosition = groupPosition; m_offsetPosition = offsetPosition; RotationOffset = rotationOffset; Velocity = Vector3.Zero; AngularVelocity = Vector3.Zero; Acceleration = Vector3.Zero; SitTargetAvatar = new List<UUID>(); StateSaves = new Dictionary<UUID, StateSave>(); ValidpartOOB = false; // Prims currently only contain a single folder (Contents). From looking at the Second Life protocol, // this appears to have the same UUID (!) as the prim. If this isn't the case, one can't drag items from // the prim into an agent inventory (Linden client reports that the "Object not found for drop" in its log Flags = 0; CreateSelected = true; TrimPermissions(); //m_undo = new UndoStack<UndoState>(ParentGroup.GetSceneMaxUndo()); m_inventory = new SceneObjectPartInventory(this); Material = (int) OpenMetaverse.Material.Wood; }
/// <summary> /// No arg constructor called by region restore db code /// </summary> public SceneObjectPart() { SitTargetAvatar = new List<UUID>(); StateSaves = new Dictionary<UUID, StateSave>(); m_inventory = new SceneObjectPartInventory(this); m_shape = new PrimitiveBaseShape(); Material = (int) OpenMetaverse.Material.Wood; }