1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
using System;
using System.Collections.Generic;
using System.Text;
using libsecondlife;
using libsecondlife.Packets;
using OpenSim.Physics.Manager;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
using OpenSim.Framework.Inventory;
using OpenSim.Framework.Utilities;
namespace OpenSim.world
{
public partial class World
{
public void ModifyTerrain(byte action, float north, float west)
{
switch (action)
{
case 1:
// raise terrain
Terrain.raise(north, west, 10.0, 0.001);
RegenerateTerrain(true, (int)north, (int)west);
break;
case 2:
//lower terrain
Terrain.lower(north, west, 10.0, 0.001);
RegenerateTerrain(true, (int)north, (int)west);
break;
}
return;
}
public void SimChat(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
{
Console.WriteLine("chat message");
Avatar avatar = null;
foreach (IClientAPI client in m_clientThreads.Values)
{
int dis = -1000;
if (this.Avatars.ContainsKey(client.AgentId))
{
avatar = this.Avatars[client.AgentId];
// int dis = Util.fast_distance2d((int)(client.ClientAvatar.Pos.X - simClient.ClientAvatar.Pos.X), (int)(client.ClientAvatar.Pos.Y - simClient.ClientAvatar.Pos.Y));
dis= (int)avatar.Pos.GetDistanceTo(fromPos);
Console.WriteLine("found avatar at " +dis);
}
switch (type)
{
case 0: // Whisper
if ((dis < 10) && (dis > -10))
{
//should change so the message is sent through the avatar rather than direct to the ClientView
client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
}
break;
case 1: // Say
if ((dis < 30) && (dis > -30))
{
Console.WriteLine("sending chat");
client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
}
break;
case 2: // Shout
if ((dis < 100) && (dis > -100))
{
client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
}
break;
case 0xff: // Broadcast
client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
break;
}
}
}
public void RezObject(AssetBase primAsset, LLVector3 pos)
{
}
public void DeRezObject(Packet packet, IClientAPI simClient)
{
}
public void SendAvatarsToClient(IClientAPI remoteClient)
{
}
public void LinkObjects(uint parentPrim, List<uint> childPrims)
{
}
public void UpdatePrimShape(uint primLocalID, ObjectShapePacket.ObjectDataBlock shapeBlock)
{
}
public void SelectPrim(uint primLocalID, IClientAPI remoteClient)
{
}
public void UpdatePrimFlags(uint localID, Packet packet, IClientAPI remoteClient)
{
}
public void UpdatePrimTexture(uint localID, byte[] texture, IClientAPI remoteClient)
{
}
public void UpdatePrimPosition(uint localID, LLVector3 pos, IClientAPI remoteClient)
{
}
public void UpdatePrimRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient)
{
}
public void UpdatePrimScale(uint localID, LLVector3 scale, IClientAPI remoteClient)
{
}
}
}
|