diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs index 0c6d971f4e..e4c01b3aaa 100644 --- a/OpenSim/Framework/Communications/Cache/AssetCache.cs +++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs @@ -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); diff --git a/OpenSim/Framework/General/Interfaces/IClientAPI.cs b/OpenSim/Framework/General/Interfaces/IClientAPI.cs index c1d91d5c0a..1e2889cff3 100644 --- a/OpenSim/Framework/General/Interfaces/IClientAPI.cs +++ b/OpenSim/Framework/General/Interfaces/IClientAPI.cs @@ -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); diff --git a/OpenSim/Framework/General/NullClientAPI.cs b/OpenSim/Framework/General/NullClientAPI.cs index 45c1a14b82..c0b4e8ab6f 100644 --- a/OpenSim/Framework/General/NullClientAPI.cs +++ b/OpenSim/Framework/General/NullClientAPI.cs @@ -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){} diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs index 2733f0a409..4b0352b0e8 100644 --- a/OpenSim/Region/ClientStack/ClientView.API.cs +++ b/OpenSim/Region/ClientStack/ClientView.API.cs @@ -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); } diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs index bad7fec64f..008b4c70ef 100644 --- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs +++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs @@ -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 ); diff --git a/OpenSim/Region/Environment/Scenes/Primitive.cs b/OpenSim/Region/Environment/Scenes/Primitive.cs index ba10893ac7..60ea28f38c 100644 --- a/OpenSim/Region/Environment/Scenes/Primitive.cs +++ b/OpenSim/Region/Environment/Scenes/Primitive.cs @@ -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]; diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 70bd0034ab..a90c5ff8bb 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs @@ -217,7 +217,42 @@ namespace OpenSim.Region.Environment.Scenes /// 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 avatars = this.RequestAvatarList(); + foreach (ScenePresence avatar in avatars) + { + avatar.ControllingClient.SendKillObject(this.m_regionHandle, selectedEnt.LocalId); + } + + lock (Entities) + { + Entities.Remove(selectedEnt.m_uuid); + } + } + } + } } /// @@ -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; diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 39584ad811..70aead3156 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -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; diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index caa359edb1..4bb48b80b8 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -459,6 +459,9 @@ namespace OpenSim.Region.Environment.Scenes this.m_scene.InformClientOfNeighbours(this.ControllingClient); this.newAvatar = false; } + + // this.SendFullUpdateToALLClients(); + // this.SendArrearanceToAllOtherAgents(); } /// @@ -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; diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs index 6bcec5c95a..b9ffb713a1 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs @@ -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) { } diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs index 4d0699b3b1..b722fdf2a4 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs @@ -31,79 +31,97 @@ using OpenSim.Physics.Manager; namespace OpenSim.Region.Physics.BasicPhysicsPlugin { - /// - /// Will be the PhysX plugin but for now will be a very basic physics engine - /// - 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 _actors = new List(); - private float[] _heightMap; - - public BasicScene() - { - - } - - public override PhysicsActor AddAvatar(PhysicsVector position) - { - BasicActor act = new BasicActor(); - act.Position = position; - _actors.Add(act); - return act; - } + /// + /// Will be the PhysX plugin but for now will be a very basic physics engine + /// + 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 _actors = new List(); + 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) + { + + } + } }