aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim.RegionServer/world/World.PacketHandlers.cs
diff options
context:
space:
mode:
authorMW2007-05-21 19:12:18 +0000
committerMW2007-05-21 19:12:18 +0000
commitf96083a903024550243ada885c8edccad7e0eed7 (patch)
treee789d0d973490b0d5fdca86a41bacf319fe80f31 /OpenSim.RegionServer/world/World.PacketHandlers.cs
parentMerged the new ODE stuff (diff)
downloadopensim-SC-f96083a903024550243ada885c8edccad7e0eed7.zip
opensim-SC-f96083a903024550243ada885c8edccad7e0eed7.tar.gz
opensim-SC-f96083a903024550243ada885c8edccad7e0eed7.tar.bz2
opensim-SC-f96083a903024550243ada885c8edccad7e0eed7.tar.xz
More work on adding Events to ClientView (and registering to handle those events in Avatar and World)
Diffstat (limited to 'OpenSim.RegionServer/world/World.PacketHandlers.cs')
-rw-r--r--OpenSim.RegionServer/world/World.PacketHandlers.cs98
1 files changed, 62 insertions, 36 deletions
diff --git a/OpenSim.RegionServer/world/World.PacketHandlers.cs b/OpenSim.RegionServer/world/World.PacketHandlers.cs
index 27f200f..d12013a 100644
--- a/OpenSim.RegionServer/world/World.PacketHandlers.cs
+++ b/OpenSim.RegionServer/world/World.PacketHandlers.cs
@@ -15,31 +15,22 @@ namespace OpenSim.world
15{ 15{
16 public partial class World 16 public partial class World
17 { 17 {
18 18 public void ModifyTerrain(byte Action, float North, float West)
19 public bool ModifyTerrain(ClientView simClient, Packet packet)
20 { 19 {
21 ModifyLandPacket modify = (ModifyLandPacket)packet; 20 switch (Action)
22
23 switch (modify.ModifyBlock.Action)
24 { 21 {
25 case 1: 22 case 1:
26 // raise terrain 23 // raise terrain
27 if (modify.ParcelData.Length > 0) 24 Terrain.raise(North, West, 10.0, 0.1);
28 { 25 RegenerateTerrain(true, (int)North, (int)West);
29 Terrain.raise(modify.ParcelData[0].North, modify.ParcelData[0].West, 10.0, 0.1);
30 RegenerateTerrain(true, (int)modify.ParcelData[0].North, (int)modify.ParcelData[0].West);
31 }
32 break; 26 break;
33 case 2: 27 case 2:
34 //lower terrain 28 //lower terrain
35 if (modify.ParcelData.Length > 0) 29 Terrain.lower(North, West, 10.0, 0.1);
36 { 30 RegenerateTerrain(true, (int)North, (int)West);
37 Terrain.lower(modify.ParcelData[0].North, modify.ParcelData[0].West, 10.0, 0.1);
38 RegenerateTerrain(true, (int)modify.ParcelData[0].North, (int)modify.ParcelData[0].West);
39 }
40 break; 31 break;
41 } 32 }
42 return true; 33 return;
43 } 34 }
44 35
45 public void SimChat(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID) 36 public void SimChat(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
@@ -79,27 +70,13 @@ namespace OpenSim.world
79 } 70 }
80 } 71 }
81 72
82 public bool RezObject(ClientView simClient, Packet packet) 73 public void RezObject(AssetBase primasset, LLVector3 pos)
83 { 74 {
84 RezObjectPacket rezPacket = (RezObjectPacket)packet; 75 PrimData primd = new PrimData(primasset.Data);
85 AgentInventory inven = this._inventoryCache.GetAgentsInventory(simClient.AgentID); 76 Primitive nPrim = new Primitive(m_clientThreads, m_regionHandle, this);
86 if (inven != null) 77 nPrim.CreateFromStorage(primd, pos, this._primCount, true);
87 { 78 this.Entities.Add(nPrim.uuid, nPrim);
88 if (inven.InventoryItems.ContainsKey(rezPacket.InventoryData.ItemID)) 79 this._primCount++;
89 {
90 AssetBase asset = this._assetCache.GetAsset(inven.InventoryItems[rezPacket.InventoryData.ItemID].AssetID);
91 if (asset != null)
92 {
93 PrimData primd = new PrimData(asset.Data);
94 Primitive nPrim = new Primitive(m_clientThreads, m_regionHandle, this);
95 nPrim.CreateFromStorage(primd, rezPacket.RezData.RayEnd, this._primCount, true);
96 this.Entities.Add(nPrim.uuid, nPrim);
97 this._primCount++;
98 this._inventoryCache.DeleteInventoryItem(simClient, rezPacket.InventoryData.ItemID);
99 }
100 }
101 }
102 return true;
103 } 80 }
104 81
105 public bool DeRezObject(ClientView simClient, Packet packet) 82 public bool DeRezObject(ClientView simClient, Packet packet)
@@ -191,6 +168,7 @@ namespace OpenSim.world
191 return true; 168 return true;
192 } 169 }
193 170
171 /*
194 public void RequestMapBlock(ClientView simClient, int minX, int minY, int maxX, int maxY) 172 public void RequestMapBlock(ClientView simClient, int minX, int minY, int maxX, int maxY)
195 { 173 {
196 System.Text.Encoding _enc = System.Text.Encoding.ASCII; 174 System.Text.Encoding _enc = System.Text.Encoding.ASCII;
@@ -212,6 +190,54 @@ namespace OpenSim.world
212 simClient.OutPacket(mapReply); 190 simClient.OutPacket(mapReply);
213 } 191 }
214 } 192 }
193 public bool RezObjectHandler(ClientView simClient, Packet packet)
194 {
195 RezObjectPacket rezPacket = (RezObjectPacket)packet;
196 AgentInventory inven = this._inventoryCache.GetAgentsInventory(simClient.AgentID);
197 if (inven != null)
198 {
199 if (inven.InventoryItems.ContainsKey(rezPacket.InventoryData.ItemID))
200 {
201 AssetBase asset = this._assetCache.GetAsset(inven.InventoryItems[rezPacket.InventoryData.ItemID].AssetID);
202 if (asset != null)
203 {
204 PrimData primd = new PrimData(asset.Data);
205 Primitive nPrim = new Primitive(m_clientThreads, m_regionHandle, this);
206 nPrim.CreateFromStorage(primd, rezPacket.RezData.RayEnd, this._primCount, true);
207 this.Entities.Add(nPrim.uuid, nPrim);
208 this._primCount++;
209 this._inventoryCache.DeleteInventoryItem(simClient, rezPacket.InventoryData.ItemID);
210 }
211 }
212 }
213 return true;
214 }
215 public bool ModifyTerrain(ClientView simClient, Packet packet)
216 {
217 ModifyLandPacket modify = (ModifyLandPacket)packet;
218
219 switch (modify.ModifyBlock.Action)
220 {
221 case 1:
222 // raise terrain
223 if (modify.ParcelData.Length > 0)
224 {
225 Terrain.raise(modify.ParcelData[0].North, modify.ParcelData[0].West, 10.0, 0.1);
226 RegenerateTerrain(true, (int)modify.ParcelData[0].North, (int)modify.ParcelData[0].West);
227 }
228 break;
229 case 2:
230 //lower terrain
231 if (modify.ParcelData.Length > 0)
232 {
233 Terrain.lower(modify.ParcelData[0].North, modify.ParcelData[0].West, 10.0, 0.1);
234 RegenerateTerrain(true, (int)modify.ParcelData[0].North, (int)modify.ParcelData[0].West);
235 }
236 break;
237 }
238 return true;
239 }
240 */
215 241
216 } 242 }
217} 243}