aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMW2007-07-29 13:05:57 +0000
committerMW2007-07-29 13:05:57 +0000
commit5ee2e38c11785e9b68ecf1767af7a4ea5b13b7c7 (patch)
tree53cd656a91fd400f8bb46768ab070a96f88ae238 /OpenSim/Region
parent* Primitives no longer walk around while being rescaled. (diff)
downloadopensim-SC-5ee2e38c11785e9b68ecf1767af7a4ea5b13b7c7.zip
opensim-SC-5ee2e38c11785e9b68ecf1767af7a4ea5b13b7c7.tar.gz
opensim-SC-5ee2e38c11785e9b68ecf1767af7a4ea5b13b7c7.tar.bz2
opensim-SC-5ee2e38c11785e9b68ecf1767af7a4ea5b13b7c7.tar.xz
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.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/ClientView.API.cs4
-rw-r--r--OpenSim/Region/ClientStack/RegionApplicationBase.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/Primitive.cs6
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs38
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs3
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs5
-rw-r--r--OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs2
-rw-r--r--OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs386
8 files changed, 244 insertions, 202 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs
index 2733f0a..4b0352b 100644
--- a/OpenSim/Region/ClientStack/ClientView.API.cs
+++ b/OpenSim/Region/ClientStack/ClientView.API.cs
@@ -506,12 +506,12 @@ namespace OpenSim.Region.ClientStack
506 OutPacket(pc); 506 OutPacket(pc);
507 } 507 }
508 508
509 public void SendKillObject(ulong regionHandle, uint avatarLocalID) 509 public void SendKillObject(ulong regionHandle, uint localID)
510 { 510 {
511 KillObjectPacket kill = new KillObjectPacket(); 511 KillObjectPacket kill = new KillObjectPacket();
512 kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1]; 512 kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
513 kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock(); 513 kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
514 kill.ObjectData[0].ID = avatarLocalID; 514 kill.ObjectData[0].ID = localID;
515 OutPacket(kill); 515 OutPacket(kill);
516 } 516 }
517 517
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index bad7fec..008b4c7 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Region.ClientStack
70 70
71 Initialize(); 71 Initialize();
72 72
73 ScenePresence.LoadTextureFile("avatar-texture.dat"); 73 ScenePresence.CreateDefaultTextureEntry("avatar-texture.dat");
74 74
75 m_httpServer = new BaseHttpServer( m_httpServerPort ); 75 m_httpServer = new BaseHttpServer( m_httpServerPort );
76 76
diff --git a/OpenSim/Region/Environment/Scenes/Primitive.cs b/OpenSim/Region/Environment/Scenes/Primitive.cs
index ba10893..60ea28f 100644
--- a/OpenSim/Region/Environment/Scenes/Primitive.cs
+++ b/OpenSim/Region/Environment/Scenes/Primitive.cs
@@ -33,9 +33,9 @@ namespace OpenSim.Region.Environment.Scenes
33 33
34 public uint OwnerMask = FULL_MASK_PERMISSIONS; 34 public uint OwnerMask = FULL_MASK_PERMISSIONS;
35 public uint NextOwnerMask = FULL_MASK_PERMISSIONS; 35 public uint NextOwnerMask = FULL_MASK_PERMISSIONS;
36 public uint GroupMask = FULL_MASK_PERMISSIONS; 36 public uint GroupMask = 0;// FULL_MASK_PERMISSIONS;
37 public uint EveryoneMask = FULL_MASK_PERMISSIONS; 37 public uint EveryoneMask = 0;//FULL_MASK_PERMISSIONS;
38 public uint BaseMask = FULL_MASK_PERMISSIONS; 38 public uint BaseMask = 0;//FULL_MASK_PERMISSIONS;
39 39
40 private PrimitiveBaseShape m_Shape; 40 private PrimitiveBaseShape m_Shape;
41 private byte[] m_particleSystem = new byte[0]; 41 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 70bd003..a90c5ff 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
217 /// <param name="simClient"></param> 217 /// <param name="simClient"></param>
218 public void DeRezObject(Packet packet, IClientAPI simClient) 218 public void DeRezObject(Packet packet, IClientAPI simClient)
219 { 219 {
220 DeRezObjectPacket DeRezPacket = (DeRezObjectPacket)packet;
220 221
222
223 if (DeRezPacket.AgentBlock.DestinationID == LLUUID.Zero)
224 {
225 //currently following code not used (or don't know of any case of destination being zero
226 }
227 else
228 {
229 foreach (DeRezObjectPacket.ObjectDataBlock Data in DeRezPacket.ObjectData)
230 {
231 EntityBase selectedEnt = null;
232 //OpenSim.Framework.Console.MainConsole.Instance.WriteLine("LocalID:" + Data.ObjectLocalID.ToString());
233 foreach (EntityBase ent in this.Entities.Values)
234 {
235 if (ent.LocalId == Data.ObjectLocalID)
236 {
237 selectedEnt = ent;
238 break;
239 }
240 }
241 if (selectedEnt != null)
242 {
243 List<ScenePresence> avatars = this.RequestAvatarList();
244 foreach (ScenePresence avatar in avatars)
245 {
246 avatar.ControllingClient.SendKillObject(this.m_regionHandle, selectedEnt.LocalId);
247 }
248
249 lock (Entities)
250 {
251 Entities.Remove(selectedEnt.m_uuid);
252 }
253 }
254 }
255 }
221 } 256 }
222 257
223 /// <summary> 258 /// <summary>
@@ -678,7 +713,7 @@ namespace OpenSim.Region.Environment.Scenes
678 asset.InvType = invType; 713 asset.InvType = invType;
679 asset.Type = type; 714 asset.Type = type;
680 asset.FullID = LLUUID.Random(); 715 asset.FullID = LLUUID.Random();
681 asset.Data = new byte[0]; 716 asset.Data = new byte[1];
682 this.assetCache.AddAsset(asset); 717 this.assetCache.AddAsset(asset);
683 718
684 InventoryItemBase item = new InventoryItemBase(); 719 InventoryItemBase item = new InventoryItemBase();
@@ -689,6 +724,7 @@ namespace OpenSim.Region.Environment.Scenes
689 item.inventoryDescription = description; 724 item.inventoryDescription = description;
690 item.inventoryName = name; 725 item.inventoryName = name;
691 item.assetType = invType; 726 item.assetType = invType;
727 item.invType = invType;
692 item.parentFolderID = folderID; 728 item.parentFolderID = folderID;
693 item.inventoryCurrentPermissions = 2147483647; 729 item.inventoryCurrentPermissions = 2147483647;
694 item.inventoryNextPermissions = nextOwnerMask; 730 item.inventoryNextPermissions = nextOwnerMask;
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 39584ad..70aead3 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -550,7 +550,7 @@ namespace OpenSim.Region.Environment.Scenes
550 m_estateManager.sendRegionHandshake(client); 550 m_estateManager.sendRegionHandshake(client);
551 CreateAndAddScenePresence(client); 551 CreateAndAddScenePresence(client);
552 m_LandManager.sendParcelOverlay(client); 552 m_LandManager.sendParcelOverlay(client);
553 //commsManager.UserProfiles.AddNewUser(client.AgentId); 553 // commsManager.UserProfiles.AddNewUser(client.AgentId);
554 } 554 }
555 555
556 protected virtual void SubscribeToClientEvents(IClientAPI client) 556 protected virtual void SubscribeToClientEvents(IClientAPI client)
@@ -576,6 +576,7 @@ namespace OpenSim.Region.Environment.Scenes
576 client.OnObjectSelect += SelectPrim; 576 client.OnObjectSelect += SelectPrim;
577 client.OnObjectDeselect += DeselectPrim; 577 client.OnObjectDeselect += DeselectPrim;
578 client.OnGrapUpdate += MoveObject; 578 client.OnGrapUpdate += MoveObject;
579 client.OnDeRezObject += DeRezObject;
579 client.OnNameFromUUIDRequest += commsManager.HandleUUIDNameRequest; 580 client.OnNameFromUUIDRequest += commsManager.HandleUUIDNameRequest;
580 client.OnObjectDescription += PrimDescription; 581 client.OnObjectDescription += PrimDescription;
581 client.OnObjectName += PrimName; 582 client.OnObjectName += PrimName;
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index caa359e..4bb48b8 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -459,6 +459,9 @@ namespace OpenSim.Region.Environment.Scenes
459 this.m_scene.InformClientOfNeighbours(this.ControllingClient); 459 this.m_scene.InformClientOfNeighbours(this.ControllingClient);
460 this.newAvatar = false; 460 this.newAvatar = false;
461 } 461 }
462
463 // this.SendFullUpdateToALLClients();
464 // this.SendArrearanceToAllOtherAgents();
462 } 465 }
463 466
464 /// <summary> 467 /// <summary>
@@ -640,7 +643,7 @@ namespace OpenSim.Region.Environment.Scenes
640 } 643 }
641 } 644 }
642 645
643 public static void LoadTextureFile(string name) 646 public static void CreateDefaultTextureEntry(string name)
644 { 647 {
645 /* FileInfo fInfo = new FileInfo(name); 648 /* FileInfo fInfo = new FileInfo(name);
646 long numBytes = fInfo.Length; 649 long numBytes = fInfo.Length;
diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
index 6bcec5c..b9ffb71 100644
--- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
+++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
@@ -121,7 +121,7 @@ namespace SimpleApp
121 public virtual void SendWearables(AvatarWearable[] wearables) { } 121 public virtual void SendWearables(AvatarWearable[] wearables) { }
122 public virtual void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry) { } 122 public virtual void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry) { }
123 public virtual void SendStartPingCheck(byte seq) { } 123 public virtual void SendStartPingCheck(byte seq) { }
124 public virtual void SendKillObject(ulong regionHandle, uint avatarLocalID) { } 124 public virtual void SendKillObject(ulong regionHandle, uint localID) { }
125 public virtual void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId) { } 125 public virtual void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId) { }
126 public virtual void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID) { } 126 public virtual void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID) { }
127 public virtual void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID) { } 127 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 4d0699b..b722fdf 100644
--- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
+++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
@@ -31,79 +31,97 @@ using OpenSim.Physics.Manager;
31 31
32namespace OpenSim.Region.Physics.BasicPhysicsPlugin 32namespace OpenSim.Region.Physics.BasicPhysicsPlugin
33{ 33{
34 /// <summary> 34 /// <summary>
35 /// Will be the PhysX plugin but for now will be a very basic physics engine 35 /// Will be the PhysX plugin but for now will be a very basic physics engine
36 /// </summary> 36 /// </summary>
37 public class BasicPhysicsPlugin : IPhysicsPlugin 37 public class BasicPhysicsPlugin : IPhysicsPlugin
38 { 38 {
39 public BasicPhysicsPlugin() 39 public BasicPhysicsPlugin()
40 { 40 {
41 41
42 } 42 }
43 43
44 public bool Init() 44 public bool Init()
45 { 45 {
46 return true; 46 return true;
47 } 47 }
48 48
49 public PhysicsScene GetScene() 49 public PhysicsScene GetScene()
50 { 50 {
51 return new BasicScene(); 51 return new BasicScene();
52 } 52 }
53 53
54 public string GetName() 54 public string GetName()
55 { 55 {
56 return("basicphysics"); 56 return ("basicphysics");
57 } 57 }
58 58
59 public void Dispose() 59 public void Dispose()
60 { 60 {
61 61
62 } 62 }
63 } 63 }
64 64
65 public class BasicScene :PhysicsScene 65 public class BasicScene : PhysicsScene
66 { 66 {
67 private List<BasicActor> _actors = new List<BasicActor>(); 67 private List<BasicActor> _actors = new List<BasicActor>();
68 private float[] _heightMap; 68 private float[] _heightMap;
69 69
70 public BasicScene() 70 public BasicScene()
71 { 71 {
72 72
73 } 73 }
74 74
75 public override PhysicsActor AddAvatar(PhysicsVector position) 75 public override PhysicsActor AddAvatar(PhysicsVector position)
76 { 76 {
77 BasicActor act = new BasicActor(); 77 BasicActor act = new BasicActor();
78 act.Position = position; 78 act.Position = position;
79 _actors.Add(act); 79 _actors.Add(act);
80 return act; 80 return act;
81 } 81 }
82 82
83 public override void RemoveAvatar(PhysicsActor actor) 83 public override void RemoveAvatar(PhysicsActor actor)
84 { 84 {
85 BasicActor act = (BasicActor)actor; 85 BasicActor act = (BasicActor)actor;
86 if(_actors.Contains(act)) 86 if (_actors.Contains(act))
87 { 87 {
88 _actors.Remove(act); 88 _actors.Remove(act);
89 } 89 }
90 90
91 } 91 }
92 92
93 public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size) 93 public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
94 { 94 {
95 return null; 95 return null;
96 } 96 }
97 97
98 public override void Simulate(float timeStep) 98 public override void Simulate(float timeStep)
99 { 99 {
100 foreach (BasicActor actor in _actors) 100 foreach (BasicActor actor in _actors)
101 { 101 {
102 float height = _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 1.2f;
103 actor.Position.X = actor.Position.X + (actor.Velocity.X * timeStep); 102 actor.Position.X = actor.Position.X + (actor.Velocity.X * timeStep);
104 actor.Position.Y = actor.Position.Y + (actor.Velocity.Y * timeStep); 103 actor.Position.Y = actor.Position.Y + (actor.Velocity.Y * timeStep);
104 if (actor.Position.Y < 0)
105 {
106 actor.Position.Y = 0;
107 }
108 else if (actor.Position.Y > 256)
109 {
110 actor.Position.Y = 256;
111 }
112
113 if (actor.Position.X < 0)
114 {
115 actor.Position.X = 0;
116 }
117 else if (actor.Position.X > 256)
118 {
119 actor.Position.X = 256;
120 }
121
122 float height = _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 1.2f;
105 if (actor.Flying) 123 if (actor.Flying)
106 { 124 {
107 if (actor.Position.Z + (actor.Velocity.Z * timeStep) < _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 2) 125 if (actor.Position.Z + (actor.Velocity.Z * timeStep) < _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 2)
108 { 126 {
109 actor.Position.Z = height; 127 actor.Position.Z = height;
@@ -120,145 +138,129 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
120 actor.Velocity.Z = 0; 138 actor.Velocity.Z = 0;
121 } 139 }
122 140
123 if (actor.Position.Y < 0)
124 {
125 actor.Position.Y = 0;
126 }
127 else if (actor.Position.Y > 256)
128 {
129 actor.Position.Y = 256;
130 }
131 141
132 if (actor.Position.X < 0)
133 {
134 actor.Position.X = 0;
135 }
136 if (actor.Position.X > 256)
137 {
138 actor.Position.X = 256;
139 }
140 } 142 }
141 } 143 }
142 144
143 public override void GetResults() 145 public override void GetResults()
144 { 146 {
145 147
146 } 148 }
147 149
148 public override bool IsThreaded 150 public override bool IsThreaded
149 { 151 {
150 get 152 get
151 { 153 {
152 return(false); // for now we won't be multithreaded 154 return (false); // for now we won't be multithreaded
153 } 155 }
154 } 156 }
155 157
156 public override void SetTerrain(float[] heightMap) 158 public override void SetTerrain(float[] heightMap)
157 { 159 {
158 this._heightMap = heightMap; 160 this._heightMap = heightMap;
159 } 161 }
160 162
161 public override void DeleteTerrain() 163 public override void DeleteTerrain()
162 { 164 {
163 165
164 } 166 }
165 } 167 }
166 168
167 public class BasicActor : PhysicsActor 169 public class BasicActor : PhysicsActor
168 { 170 {
169 private PhysicsVector _position; 171 private PhysicsVector _position;
170 private PhysicsVector _velocity; 172 private PhysicsVector _velocity;
171 private PhysicsVector _acceleration; 173 private PhysicsVector _acceleration;
172 private bool flying; 174 private bool flying;
173 public BasicActor() 175 public BasicActor()
174 { 176 {
175 _velocity = new PhysicsVector(); 177 _velocity = new PhysicsVector();
176 _position = new PhysicsVector(); 178 _position = new PhysicsVector();
177 _acceleration = new PhysicsVector(); 179 _acceleration = new PhysicsVector();
178 } 180 }
179 181
180 public override bool Flying 182 public override bool Flying
181 { 183 {
182 get 184 get
183 { 185 {
184 return flying; 186 return flying;
185 } 187 }
186 set 188 set
187 { 189 {
188 flying= value; 190 flying = value;
189 } 191 }
190 } 192 }
191 193
192 public override PhysicsVector Position 194 public override PhysicsVector Position
193 { 195 {
194 get 196 get
195 { 197 {
196 return _position; 198 return _position;
197 } 199 }
198 set 200 set
199 { 201 {
200 _position = value; 202 _position = value;
201 } 203 }
202 } 204 }
203 205
204 public override PhysicsVector Velocity 206 public override PhysicsVector Velocity
205 { 207 {
206 get 208 get
207 { 209 {
208 return _velocity; 210 return _velocity;
209 } 211 }
210 set 212 set
211 { 213 {
212 _velocity = value; 214 _velocity = value;
213 } 215 }
214 } 216 }
215 217
216 public override Quaternion Orientation 218 public override Quaternion Orientation
217 { 219 {
218 get 220 get
219 { 221 {
220 return Quaternion.Identity; 222 return Quaternion.Identity;
221 } 223 }
222 set 224 set
223 { 225 {
224 226
225 } 227 }
226 } 228 }
227 229
228 public override PhysicsVector Acceleration 230 public override PhysicsVector Acceleration
229 { 231 {
230 get 232 get
231 { 233 {
232 return _acceleration; 234 return _acceleration;
233 } 235 }
234 236
235 } 237 }
236 238
237 public override bool Kinematic 239 public override bool Kinematic
238 { 240 {
239 get 241 get
240 { 242 {
241 return true; 243 return true;
242 } 244 }
243 set 245 set
244 { 246 {
245 247
246 } 248 }
247 } 249 }
248 public void SetAcceleration (PhysicsVector accel) 250 public void SetAcceleration(PhysicsVector accel)
249 { 251 {
250 this._acceleration = accel; 252 this._acceleration = accel;
251 } 253 }
252 254
253 public override void AddForce(PhysicsVector force) 255 public override void AddForce(PhysicsVector force)
254 { 256 {
255 257
256 } 258 }
257 259
258 public override void SetMomentum(PhysicsVector momentum) 260 public override void SetMomentum(PhysicsVector momentum)
259 { 261 {
260 262
261 } 263 }
262 } 264 }
263 265
264} 266}