* Rezzing items from Inventory on top of other prim rezzes them 0.5 meters above the 'hit' prim instead of buried in the ground somewhere.
* Various Refactoringsafrisby
parent
5b720b4b39
commit
f64d94f8ca
|
@ -226,7 +226,23 @@ namespace OpenSim.Framework
|
|||
public delegate void ImprovedInstantMessage(
|
||||
LLUUID fromAgentID, LLUUID fromAgentSession, LLUUID toAgentID, LLUUID imSessionID, uint timestamp,
|
||||
string fromAgentName, string message, byte dialog); // Cut down from full list
|
||||
public delegate void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 pos);
|
||||
|
||||
//rezPacket.RezData.BypassRaycast;
|
||||
//rezPacket.RezData.RayEnd;
|
||||
//rezPacket.RezData.RayEndIsIntersection;
|
||||
//rezPacket.RezData.RayStart;
|
||||
//rezPacket.RezData.RayTargetID;
|
||||
//rezPacket.RezData.RemoveItem;
|
||||
//rezPacket.RezData.RezSelected;
|
||||
//rezPacket.RezData.FromTaskID;
|
||||
//rezPacket.RezData.FromTaskID;
|
||||
//rezPacket.RezData.EveryoneMask;
|
||||
//rezPacket.RezData.GroupMask;
|
||||
//rezPacket.RezData.NextOwnerMask;
|
||||
public delegate void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 RayEnd, LLVector3 RayStart,
|
||||
LLUUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection,
|
||||
uint EveryoneMask, uint GroupMask, uint NextOwnerMask, uint ItemFlags,
|
||||
bool RezSelected, bool RemoveItem, LLUUID fromTaskID );
|
||||
|
||||
public delegate void ModifyTerrain(
|
||||
float height, float seconds, byte size, byte action, float north, float west, float south, float east,
|
||||
|
|
|
@ -2560,8 +2560,19 @@ namespace OpenSim.Region.ClientStack
|
|||
//rezPacket.RezData.RemoveItem;
|
||||
//rezPacket.RezData.RezSelected;
|
||||
//rezPacket.RezData.FromTaskID;
|
||||
//rezPacket.RezData.FromTaskID;
|
||||
//rezPacket.RezData.EveryoneMask;
|
||||
//rezPacket.RezData.GroupMask;
|
||||
//rezPacket.RezData.NextOwnerMask;
|
||||
|
||||
//MainLog.Instance.Verbose("REZData", rezPacket.ToString());
|
||||
OnRezObject(this, rezPacket.InventoryData.ItemID, rezPacket.RezData.RayEnd);
|
||||
OnRezObject(this, rezPacket.InventoryData.ItemID, rezPacket.RezData.RayEnd,
|
||||
rezPacket.RezData.RayStart,rezPacket.RezData.RayTargetID,
|
||||
rezPacket.RezData.BypassRaycast,rezPacket.RezData.RayEndIsIntersection,
|
||||
rezPacket.RezData.EveryoneMask,rezPacket.RezData.GroupMask,
|
||||
rezPacket.RezData.NextOwnerMask,rezPacket.RezData.ItemFlags,
|
||||
rezPacket.RezData.RezSelected,rezPacket.RezData.RemoveItem,
|
||||
rezPacket.RezData.FromTaskID);
|
||||
}
|
||||
break;
|
||||
case PacketType.DeRezObject:
|
||||
|
@ -2740,12 +2751,6 @@ namespace OpenSim.Region.ClientStack
|
|||
{
|
||||
ObjectAddPacket addPacket = (ObjectAddPacket) Pack;
|
||||
PrimitiveBaseShape shape = GetShapeFromAddPacket(addPacket);
|
||||
MainLog.Instance.Verbose("REZData", addPacket.ToString());
|
||||
//BypassRaycast: 1
|
||||
//RayStart: <69.79469, 158.2652, 98.40343>
|
||||
//RayEnd: <61.97724, 141.995, 92.58341>
|
||||
//RayTargetID: 00000000-0000-0000-0000-000000000000
|
||||
|
||||
OnAddPrim(AgentId, addPacket.ObjectData.RayEnd, addPacket.ObjectData.Rotation, shape,addPacket.ObjectData.BypassRaycast,addPacket.ObjectData.RayStart,addPacket.ObjectData.RayTargetID,addPacket.ObjectData.RayEndIsIntersection);
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -699,8 +699,23 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
group.DeleteParts();
|
||||
}
|
||||
|
||||
public virtual void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 pos)
|
||||
public virtual void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 RayEnd, LLVector3 RayStart,
|
||||
LLUUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection,
|
||||
uint EveryoneMask, uint GroupMask, uint NextOwnerMask, uint ItemFlags,
|
||||
bool RezSelected, bool RemoveItem, LLUUID fromTaskID)
|
||||
{
|
||||
byte bRayEndIsIntersection = (byte)0;
|
||||
|
||||
if (RayEndIsIntersection)
|
||||
{
|
||||
bRayEndIsIntersection = (byte)1;
|
||||
}
|
||||
else
|
||||
{
|
||||
bRayEndIsIntersection = (byte)0;
|
||||
}
|
||||
|
||||
LLVector3 pos = GetNewRezLocation(RayStart, RayEnd, RayTargetID, new LLQuaternion(0, 0, 0, 1), BypassRayCast, bRayEndIsIntersection);
|
||||
CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
|
||||
if (userInfo != null)
|
||||
{
|
||||
|
|
|
@ -931,6 +931,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
if (RayEndIsIntersection == (byte)1)
|
||||
{
|
||||
pos = RayEnd;
|
||||
pos.Z += 0.25F;
|
||||
return pos;
|
||||
}
|
||||
if (RayTargetID != LLUUID.Zero)
|
||||
|
@ -986,13 +987,14 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
|
||||
|
||||
|
||||
pos.Z += 0.25F;
|
||||
return pos;
|
||||
}
|
||||
else
|
||||
{
|
||||
// fall back to our stupid functionality
|
||||
pos = RayEnd;
|
||||
pos.Z += 0.25F;
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
|
@ -1000,6 +1002,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
{
|
||||
// fall back to our stupid functionality
|
||||
pos = RayEnd;
|
||||
pos.Z += 0.25F;
|
||||
return pos;
|
||||
}
|
||||
|
||||
|
@ -1018,7 +1021,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
if (PermissionsMngr.CanRezObject(ownerID, pos))
|
||||
{
|
||||
// rez ON the ground, not IN the ground
|
||||
pos.Z += 0.25F;
|
||||
|
||||
|
||||
|
||||
AddNewPrim(ownerID, pos, rot, shape);
|
||||
|
|
Loading…
Reference in New Issue