Deleting objects should now work. But beware they aren't send to your trash folder or anything so there is at the moment no way to recover deleted objects.

afrisby
MW 2007-07-29 13:05:57 +00:00
parent 8b3981f1fd
commit 5ee2e38c11
11 changed files with 247 additions and 204 deletions

View File

@ -272,6 +272,7 @@ namespace OpenSim.Framework.Communications.Caches
//inventory asset request
requestID = new LLUUID(transferRequest.TransferInfo.Params, 80);
source = 3;
Console.WriteLine("asset request " + requestID);
}
//check to see if asset is in local cache, if not we need to request it from asset server.
//Console.WriteLine("asset request " + requestID);

View File

@ -174,7 +174,7 @@ namespace OpenSim.Framework.Interfaces
void SendWearables(AvatarWearable[] wearables);
void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry);
void SendStartPingCheck(byte seq);
void SendKillObject(ulong regionHandle, uint avatarLocalID);
void SendKillObject(ulong regionHandle, uint localID);
void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId);
void SendRegionHandshake(RegionInfo regionInfo);
void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);

View File

@ -106,7 +106,7 @@ namespace OpenSim.Framework
public virtual void SendWearables(AvatarWearable[] wearables){}
public virtual void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry) { }
public virtual void SendStartPingCheck(byte seq){}
public virtual void SendKillObject(ulong regionHandle, uint avatarLocalID){}
public virtual void SendKillObject(ulong regionHandle, uint localID){}
public virtual void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId){}
public virtual void SendRegionHandshake(RegionInfo regionInfo){}
public virtual void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID){}

View File

@ -506,12 +506,12 @@ namespace OpenSim.Region.ClientStack
OutPacket(pc);
}
public void SendKillObject(ulong regionHandle, uint avatarLocalID)
public void SendKillObject(ulong regionHandle, uint localID)
{
KillObjectPacket kill = new KillObjectPacket();
kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
kill.ObjectData[0].ID = avatarLocalID;
kill.ObjectData[0].ID = localID;
OutPacket(kill);
}

View File

@ -70,7 +70,7 @@ namespace OpenSim.Region.ClientStack
Initialize();
ScenePresence.LoadTextureFile("avatar-texture.dat");
ScenePresence.CreateDefaultTextureEntry("avatar-texture.dat");
m_httpServer = new BaseHttpServer( m_httpServerPort );

View File

@ -33,9 +33,9 @@ namespace OpenSim.Region.Environment.Scenes
public uint OwnerMask = FULL_MASK_PERMISSIONS;
public uint NextOwnerMask = FULL_MASK_PERMISSIONS;
public uint GroupMask = FULL_MASK_PERMISSIONS;
public uint EveryoneMask = FULL_MASK_PERMISSIONS;
public uint BaseMask = FULL_MASK_PERMISSIONS;
public uint GroupMask = 0;// FULL_MASK_PERMISSIONS;
public uint EveryoneMask = 0;//FULL_MASK_PERMISSIONS;
public uint BaseMask = 0;//FULL_MASK_PERMISSIONS;
private PrimitiveBaseShape m_Shape;
private byte[] m_particleSystem = new byte[0];

View File

@ -217,7 +217,42 @@ namespace OpenSim.Region.Environment.Scenes
/// <param name="simClient"></param>
public void DeRezObject(Packet packet, IClientAPI simClient)
{
DeRezObjectPacket DeRezPacket = (DeRezObjectPacket)packet;
if (DeRezPacket.AgentBlock.DestinationID == LLUUID.Zero)
{
//currently following code not used (or don't know of any case of destination being zero
}
else
{
foreach (DeRezObjectPacket.ObjectDataBlock Data in DeRezPacket.ObjectData)
{
EntityBase selectedEnt = null;
//OpenSim.Framework.Console.MainConsole.Instance.WriteLine("LocalID:" + Data.ObjectLocalID.ToString());
foreach (EntityBase ent in this.Entities.Values)
{
if (ent.LocalId == Data.ObjectLocalID)
{
selectedEnt = ent;
break;
}
}
if (selectedEnt != null)
{
List<ScenePresence> avatars = this.RequestAvatarList();
foreach (ScenePresence avatar in avatars)
{
avatar.ControllingClient.SendKillObject(this.m_regionHandle, selectedEnt.LocalId);
}
lock (Entities)
{
Entities.Remove(selectedEnt.m_uuid);
}
}
}
}
}
/// <summary>
@ -678,7 +713,7 @@ namespace OpenSim.Region.Environment.Scenes
asset.InvType = invType;
asset.Type = type;
asset.FullID = LLUUID.Random();
asset.Data = new byte[0];
asset.Data = new byte[1];
this.assetCache.AddAsset(asset);
InventoryItemBase item = new InventoryItemBase();
@ -689,6 +724,7 @@ namespace OpenSim.Region.Environment.Scenes
item.inventoryDescription = description;
item.inventoryName = name;
item.assetType = invType;
item.invType = invType;
item.parentFolderID = folderID;
item.inventoryCurrentPermissions = 2147483647;
item.inventoryNextPermissions = nextOwnerMask;

View File

@ -550,7 +550,7 @@ namespace OpenSim.Region.Environment.Scenes
m_estateManager.sendRegionHandshake(client);
CreateAndAddScenePresence(client);
m_LandManager.sendParcelOverlay(client);
//commsManager.UserProfiles.AddNewUser(client.AgentId);
// commsManager.UserProfiles.AddNewUser(client.AgentId);
}
protected virtual void SubscribeToClientEvents(IClientAPI client)
@ -576,6 +576,7 @@ namespace OpenSim.Region.Environment.Scenes
client.OnObjectSelect += SelectPrim;
client.OnObjectDeselect += DeselectPrim;
client.OnGrapUpdate += MoveObject;
client.OnDeRezObject += DeRezObject;
client.OnNameFromUUIDRequest += commsManager.HandleUUIDNameRequest;
client.OnObjectDescription += PrimDescription;
client.OnObjectName += PrimName;

View File

@ -459,6 +459,9 @@ namespace OpenSim.Region.Environment.Scenes
this.m_scene.InformClientOfNeighbours(this.ControllingClient);
this.newAvatar = false;
}
// this.SendFullUpdateToALLClients();
// this.SendArrearanceToAllOtherAgents();
}
/// <summary>
@ -640,7 +643,7 @@ namespace OpenSim.Region.Environment.Scenes
}
}
public static void LoadTextureFile(string name)
public static void CreateDefaultTextureEntry(string name)
{
/* FileInfo fInfo = new FileInfo(name);
long numBytes = fInfo.Length;

View File

@ -121,7 +121,7 @@ namespace SimpleApp
public virtual void SendWearables(AvatarWearable[] wearables) { }
public virtual void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry) { }
public virtual void SendStartPingCheck(byte seq) { }
public virtual void SendKillObject(ulong regionHandle, uint avatarLocalID) { }
public virtual void SendKillObject(ulong regionHandle, uint localID) { }
public virtual void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId) { }
public virtual void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID) { }
public virtual void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID) { }

View File

@ -31,79 +31,97 @@ using OpenSim.Physics.Manager;
namespace OpenSim.Region.Physics.BasicPhysicsPlugin
{
/// <summary>
/// Will be the PhysX plugin but for now will be a very basic physics engine
/// </summary>
public class BasicPhysicsPlugin : IPhysicsPlugin
{
public BasicPhysicsPlugin()
{
}
public bool Init()
{
return true;
}
public PhysicsScene GetScene()
{
return new BasicScene();
}
public string GetName()
{
return("basicphysics");
}
public void Dispose()
{
}
}
public class BasicScene :PhysicsScene
{
private List<BasicActor> _actors = new List<BasicActor>();
private float[] _heightMap;
public BasicScene()
{
}
public override PhysicsActor AddAvatar(PhysicsVector position)
{
BasicActor act = new BasicActor();
act.Position = position;
_actors.Add(act);
return act;
}
/// <summary>
/// Will be the PhysX plugin but for now will be a very basic physics engine
/// </summary>
public class BasicPhysicsPlugin : IPhysicsPlugin
{
public BasicPhysicsPlugin()
{
}
public bool Init()
{
return true;
}
public PhysicsScene GetScene()
{
return new BasicScene();
}
public string GetName()
{
return ("basicphysics");
}
public void Dispose()
{
}
}
public class BasicScene : PhysicsScene
{
private List<BasicActor> _actors = new List<BasicActor>();
private float[] _heightMap;
public BasicScene()
{
}
public override PhysicsActor AddAvatar(PhysicsVector position)
{
BasicActor act = new BasicActor();
act.Position = position;
_actors.Add(act);
return act;
}
public override void RemoveAvatar(PhysicsActor actor)
{
BasicActor act = (BasicActor)actor;
if(_actors.Contains(act))
if (_actors.Contains(act))
{
_actors.Remove(act);
}
}
public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
{
return null;
}
public override void Simulate(float timeStep)
{
foreach (BasicActor actor in _actors)
{
float height = _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 1.2f;
public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
{
return null;
}
public override void Simulate(float timeStep)
{
foreach (BasicActor actor in _actors)
{
actor.Position.X = actor.Position.X + (actor.Velocity.X * timeStep);
actor.Position.Y = actor.Position.Y + (actor.Velocity.Y * timeStep);
if (actor.Position.Y < 0)
{
actor.Position.Y = 0;
}
else if (actor.Position.Y > 256)
{
actor.Position.Y = 256;
}
if (actor.Position.X < 0)
{
actor.Position.X = 0;
}
else if (actor.Position.X > 256)
{
actor.Position.X = 256;
}
float height = _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 1.2f;
if (actor.Flying)
{
{
if (actor.Position.Z + (actor.Velocity.Z * timeStep) < _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 2)
{
actor.Position.Z = height;
@ -120,145 +138,129 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
actor.Velocity.Z = 0;
}
if (actor.Position.Y < 0)
{
actor.Position.Y = 0;
}
else if (actor.Position.Y > 256)
{
actor.Position.Y = 256;
}
if (actor.Position.X < 0)
{
actor.Position.X = 0;
}
if (actor.Position.X > 256)
{
actor.Position.X = 256;
}
}
}
public override void GetResults()
{
}
public override bool IsThreaded
{
get
{
return(false); // for now we won't be multithreaded
}
}
public override void SetTerrain(float[] heightMap)
{
this._heightMap = heightMap;
}
}
public override void GetResults()
{
}
public override bool IsThreaded
{
get
{
return (false); // for now we won't be multithreaded
}
}
public override void SetTerrain(float[] heightMap)
{
this._heightMap = heightMap;
}
public override void DeleteTerrain()
{
}
}
public class BasicActor : PhysicsActor
{
private PhysicsVector _position;
private PhysicsVector _velocity;
private PhysicsVector _acceleration;
private bool flying;
public BasicActor()
{
_velocity = new PhysicsVector();
_position = new PhysicsVector();
_acceleration = new PhysicsVector();
}
public override bool Flying
{
get
{
}
public class BasicActor : PhysicsActor
{
private PhysicsVector _position;
private PhysicsVector _velocity;
private PhysicsVector _acceleration;
private bool flying;
public BasicActor()
{
_velocity = new PhysicsVector();
_position = new PhysicsVector();
_acceleration = new PhysicsVector();
}
public override bool Flying
{
get
{
return flying;
}
set
{
flying= value;
}
}
public override PhysicsVector Position
{
get
{
return _position;
}
set
{
_position = value;
}
}
public override PhysicsVector Velocity
{
get
{
return _velocity;
}
set
{
_velocity = value;
}
}
public override Quaternion Orientation
{
get
{
return Quaternion.Identity;
}
set
{
}
}
public override PhysicsVector Acceleration
{
get
{
return _acceleration;
}
}
public override bool Kinematic
{
get
{
return true;
}
set
{
}
}
public void SetAcceleration (PhysicsVector accel)
{
this._acceleration = accel;
}
public override void AddForce(PhysicsVector force)
{
}
public override void SetMomentum(PhysicsVector momentum)
{
}
}
}
set
{
flying = value;
}
}
public override PhysicsVector Position
{
get
{
return _position;
}
set
{
_position = value;
}
}
public override PhysicsVector Velocity
{
get
{
return _velocity;
}
set
{
_velocity = value;
}
}
public override Quaternion Orientation
{
get
{
return Quaternion.Identity;
}
set
{
}
}
public override PhysicsVector Acceleration
{
get
{
return _acceleration;
}
}
public override bool Kinematic
{
get
{
return true;
}
set
{
}
}
public void SetAcceleration(PhysicsVector accel)
{
this._acceleration = accel;
}
public override void AddForce(PhysicsVector force)
{
}
public override void SetMomentum(PhysicsVector momentum)
{
}
}
}