diff options
Diffstat (limited to '')
-rw-r--r-- | src/Config.cs | 107 | ||||
-rw-r--r-- | src/Main.cs | 49 | ||||
-rw-r--r-- | src/OpenSimClient.cs | 45 | ||||
-rw-r--r-- | src/ServerConsole.cs | 190 | ||||
-rw-r--r-- | src/world/Avatar.cs | 15 | ||||
-rw-r--r-- | src/world/PhysicsEngine.cs | 2 | ||||
-rw-r--r-- | src/world/World.cs | 12 |
7 files changed, 292 insertions, 128 deletions
diff --git a/src/Config.cs b/src/Config.cs index dc01df9..55bcdfe 100644 --- a/src/Config.cs +++ b/src/Config.cs | |||
@@ -64,68 +64,27 @@ namespace OpenSim | |||
64 | 64 | ||
65 | public void LoadDefaults() { | 65 | public void LoadDefaults() { |
66 | string tempstring; | 66 | string tempstring; |
67 | Console.WriteLine("Config.cs:LoadDefaults() - Please press enter to retain default or enter new settings"); | 67 | OpenSim_Main.localcons.WriteLine("Config.cs:LoadDefaults() - Please press enter to retain default or enter new settings"); |
68 | Console.Write("Name [OpenSim test]:"); | 68 | |
69 | tempstring=Console.ReadLine(); | 69 | this.RegionName=OpenSim_Main.localcons.CmdPrompt("Name [OpenSim test]: ","OpenSim test"); |
70 | if(tempstring=="") { | 70 | this.RegionLocX=(uint)Convert.ToInt32(OpenSim_Main.localcons.CmdPrompt("Grid Location X [997]: ","997")); |
71 | this.RegionName = "OpenSim test"; | 71 | this.RegionLocY=(uint)Convert.ToInt32(OpenSim_Main.localcons.CmdPrompt("Grid Location Y [996]: ","996")); |
72 | } else { | 72 | this.IPListenPort=Convert.ToInt32(OpenSim_Main.localcons.CmdPrompt("UDP port for client connections [9000]: ","9000")); |
73 | this.RegionName = tempstring; | 73 | this.IPListenAddr=OpenSim_Main.localcons.CmdPrompt("IP Address to listen on for client connections [127.0.0.1]: ","127.0.0.1"); |
74 | } | ||
75 | |||
76 | Console.Write("Grid location X [997]:"); | ||
77 | tempstring=Console.ReadLine(); | ||
78 | if(tempstring=="") { | ||
79 | this.RegionLocX = 997; | ||
80 | } else { | ||
81 | this.RegionLocX = (uint)Convert.ToInt32(tempstring); | ||
82 | } | ||
83 | |||
84 | Console.Write("Grid location Y [996]:"); | ||
85 | tempstring=Console.ReadLine(); | ||
86 | if(tempstring=="") { | ||
87 | this.RegionLocY = 996; | ||
88 | } else { | ||
89 | this.RegionLocY = (uint)Convert.ToInt32(tempstring); | ||
90 | } | ||
91 | |||
92 | Console.Write("Listen on UDP port for client connections [9000]:"); | ||
93 | tempstring=Console.ReadLine(); | ||
94 | if(tempstring=="") { | ||
95 | this.IPListenPort = 9000; | ||
96 | } else { | ||
97 | this.IPListenPort = Convert.ToInt32(tempstring); | ||
98 | } | ||
99 | |||
100 | Console.Write("Listen on IP address for client connections [127.0.0.1]:"); | ||
101 | tempstring=Console.ReadLine(); | ||
102 | if(tempstring=="") { | ||
103 | this.IPListenAddr = "127.0.0.1"; | ||
104 | } else { | ||
105 | this.IPListenAddr = tempstring; | ||
106 | } | ||
107 | 74 | ||
108 | 75 | ||
109 | Console.Write("Run in sandbox or grid mode? [sandbox]:"); | 76 | tempstring=OpenSim_Main.localcons.CmdPrompt("Run in sandbox or grid mode? [sandbox]: ","sandbox", "sandbox", "grid"); |
110 | tempstring=Console.ReadLine(); | 77 | if(tempstring=="grid"){ |
111 | if(tempstring=="") { | ||
112 | this.sandbox = true; | ||
113 | } else if(tempstring=="grid"){ | ||
114 | this.sandbox = false; | 78 | this.sandbox = false; |
115 | } else if(tempstring=="sandbox"){ | 79 | } else if(tempstring=="sandbox"){ |
116 | this.sandbox=true; | 80 | this.sandbox=true; |
117 | } | 81 | } |
118 | 82 | ||
119 | if(!this.sandbox) { | 83 | if(!this.sandbox) { |
120 | Console.Write("Asset server URL:"); | 84 | this.AssetURL=OpenSim_Main.localcons.CmdPrompt("Asset server URL: "); |
121 | this.AssetURL=Console.ReadLine(); | 85 | this.AssetSendKey=OpenSim_Main.localcons.CmdPrompt("Asset server key: "); |
122 | Console.Write("Key to send to asset server:"); | 86 | this.GridURL=OpenSim_Main.localcons.CmdPrompt("Grid server URL: "); |
123 | this.AssetSendKey=Console.ReadLine(); | 87 | this.GridSendKey=OpenSim_Main.localcons.CmdPrompt("Grid server key: "); |
124 | Console.Write("Grid server URL:"); | ||
125 | this.GridURL=Console.ReadLine(); | ||
126 | Console.Write("Key to send to gridserver:"); | ||
127 | this.GridSendKey=Console.ReadLine(); | ||
128 | |||
129 | } | 88 | } |
130 | this.RegionHandle = Helpers.UIntsToLong((RegionLocX*256), (RegionLocY*256)); | 89 | this.RegionHandle = Helpers.UIntsToLong((RegionLocX*256), (RegionLocY*256)); |
131 | } | 90 | } |
@@ -135,7 +94,7 @@ namespace OpenSim | |||
135 | db = Db4oFactory.OpenFile("opensim.yap"); | 94 | db = Db4oFactory.OpenFile("opensim.yap"); |
136 | IObjectSet result = db.Get(typeof(SimConfig)); | 95 | IObjectSet result = db.Get(typeof(SimConfig)); |
137 | if(result.Count==1) { | 96 | if(result.Count==1) { |
138 | Console.WriteLine("Config.cs:InitConfig() - Found a SimConfig object in the local database, loading"); | 97 | OpenSim_Main.localcons.WriteLine("Config.cs:InitConfig() - Found a SimConfig object in the local database, loading"); |
139 | foreach (SimConfig cfg in result) { | 98 | foreach (SimConfig cfg in result) { |
140 | this.RegionName = cfg.RegionName; | 99 | this.RegionName = cfg.RegionName; |
141 | this.RegionLocX = cfg.RegionLocX; | 100 | this.RegionLocX = cfg.RegionLocX; |
@@ -149,38 +108,38 @@ namespace OpenSim | |||
149 | this.GridSendKey = cfg.GridSendKey; | 108 | this.GridSendKey = cfg.GridSendKey; |
150 | } | 109 | } |
151 | } else { | 110 | } else { |
152 | Console.WriteLine("Config.cs:InitConfig() - Could not find object in database, loading precompiled defaults"); | 111 | OpenSim_Main.localcons.WriteLine("Config.cs:InitConfig() - Could not find object in database, loading precompiled defaults"); |
153 | LoadDefaults(); | 112 | LoadDefaults(); |
154 | Console.WriteLine("Writing out default settings to local database"); | 113 | OpenSim_Main.localcons.WriteLine("Writing out default settings to local database"); |
155 | db.Set(this); | 114 | db.Set(this); |
156 | } | 115 | } |
157 | } catch(Exception e) { | 116 | } catch(Exception e) { |
158 | db.Close(); | 117 | db.Close(); |
159 | Console.WriteLine("Config.cs:InitConfig() - Exception occured"); | 118 | OpenSim_Main.localcons.WriteLine("Config.cs:InitConfig() - Exception occured"); |
160 | Console.WriteLine(e.ToString()); | 119 | OpenSim_Main.localcons.WriteLine(e.ToString()); |
161 | } | 120 | } |
162 | Console.WriteLine("Sim settings loaded:"); | 121 | OpenSim_Main.localcons.WriteLine("Sim settings loaded:"); |
163 | Console.WriteLine("Name: " + this.RegionName); | 122 | OpenSim_Main.localcons.WriteLine("Name: " + this.RegionName); |
164 | Console.WriteLine("Region Location: [" + this.RegionLocX.ToString() + "," + this.RegionLocY + "]"); | 123 | OpenSim_Main.localcons.WriteLine("Region Location: [" + this.RegionLocX.ToString() + "," + this.RegionLocY + "]"); |
165 | Console.WriteLine("Region Handle: " + this.RegionHandle.ToString()); | 124 | OpenSim_Main.localcons.WriteLine("Region Handle: " + this.RegionHandle.ToString()); |
166 | Console.WriteLine("Listening on IP: " + this.IPListenAddr + ":" + this.IPListenPort); | 125 | OpenSim_Main.localcons.WriteLine("Listening on IP: " + this.IPListenAddr + ":" + this.IPListenPort); |
167 | Console.WriteLine("Sandbox Mode? " + this.sandbox.ToString()); | 126 | OpenSim_Main.localcons.WriteLine("Sandbox Mode? " + this.sandbox.ToString()); |
168 | Console.WriteLine("Asset URL: " + this.AssetURL); | 127 | OpenSim_Main.localcons.WriteLine("Asset URL: " + this.AssetURL); |
169 | Console.WriteLine("Asset key: " + this.AssetSendKey); | 128 | OpenSim_Main.localcons.WriteLine("Asset key: " + this.AssetSendKey); |
170 | Console.WriteLine("Grid URL: " + this.GridURL); | 129 | OpenSim_Main.localcons.WriteLine("Grid URL: " + this.GridURL); |
171 | Console.WriteLine("Grid key: " + this.GridSendKey); | 130 | OpenSim_Main.localcons.WriteLine("Grid key: " + this.GridSendKey); |
172 | } | 131 | } |
173 | 132 | ||
174 | public World LoadWorld() { | 133 | public World LoadWorld() { |
175 | Console.WriteLine("Config.cs:LoadWorld() - Looking for a world object in local DB"); | 134 | OpenSim_Main.localcons.WriteLine("Config.cs:LoadWorld() - Looking for a world object in local DB"); |
176 | // IObjectSet world_result = db.Get(typeof(OpenSim.world.World)); | 135 | // IObjectSet world_result = db.Get(typeof(OpenSim.world.World)); |
177 | // if(world_result.Count==1) { | 136 | // if(world_result.Count==1) { |
178 | // Console.WriteLine("Config.cs:LoadWorld() - Found an OpenSim.world.World object in local database, loading"); | 137 | // OpenSim_Main.localcons.WriteLine("Config.cs:LoadWorld() - Found an OpenSim.world.World object in local database, loading"); |
179 | //return (World)world_result.Next(); | 138 | //return (World)world_result.Next(); |
180 | // } else { | 139 | // } else { |
181 | Console.WriteLine("Config.cs:LoadWorld() - Could not find the world or too many worlds! Constructing blank one"); | 140 | OpenSim_Main.localcons.WriteLine("Config.cs:LoadWorld() - Could not find the world or too many worlds! Constructing blank one"); |
182 | World blank = new World(); | 141 | World blank = new World(); |
183 | Console.WriteLine("Config.cs:LoadWorld() - Saving initial world state to disk"); | 142 | OpenSim_Main.localcons.WriteLine("Config.cs:LoadWorld() - Saving initial world state to disk"); |
184 | //db.Set(blank); | 143 | //db.Set(blank); |
185 | //db.Commit(); | 144 | //db.Commit(); |
186 | return blank; | 145 | return blank; |
@@ -188,7 +147,7 @@ namespace OpenSim | |||
188 | } | 147 | } |
189 | 148 | ||
190 | public void LoadFromGrid() { | 149 | public void LoadFromGrid() { |
191 | Console.WriteLine("Config.cs:LoadFromGrid() - dummy function, DOING ABSOLUTELY NOTHING AT ALL!!!"); | 150 | OpenSim_Main.localcons.WriteLine("Config.cs:LoadFromGrid() - dummy function, DOING ABSOLUTELY NOTHING AT ALL!!!"); |
192 | // TODO: Make this crap work | 151 | // TODO: Make this crap work |
193 | } | 152 | } |
194 | 153 | ||
diff --git a/src/Main.cs b/src/Main.cs index fe2183b..f3fa609 100644 --- a/src/Main.cs +++ b/src/Main.cs | |||
@@ -46,9 +46,11 @@ namespace OpenSim | |||
46 | /// </summary> | 46 | /// </summary> |
47 | public class OpenSim_Main | 47 | public class OpenSim_Main |
48 | { | 48 | { |
49 | public static DateTime startuptime; | ||
49 | public static OpenSim_Main sim; | 50 | public static OpenSim_Main sim; |
50 | public static SimConfig cfg; | 51 | public static SimConfig cfg; |
51 | public static World local_world; | 52 | public static World local_world; |
53 | public static ServerConsole localcons; | ||
52 | private static Thread MainListener; | 54 | private static Thread MainListener; |
53 | public static Socket Server; | 55 | public static Socket Server; |
54 | private static IPEndPoint ServerIncoming; | 56 | private static IPEndPoint ServerIncoming; |
@@ -67,32 +69,49 @@ namespace OpenSim | |||
67 | sim = new OpenSim_Main(); | 69 | sim = new OpenSim_Main(); |
68 | sim.Startup(); | 70 | sim.Startup(); |
69 | while(true) { | 71 | while(true) { |
70 | local_world.DoStuff(); | 72 | localcons.MainConsolePrompt(); |
71 | Thread.Sleep(100); | ||
72 | } | 73 | } |
73 | } | 74 | } |
74 | 75 | ||
75 | private OpenSim_Main() { | 76 | private OpenSim_Main() { |
76 | } | 77 | } |
77 | 78 | ||
79 | public static void Shutdown() { | ||
80 | localcons.WriteLine("Main.cs:Shutdown() - Closing all threads"); | ||
81 | localcons.WriteLine("Main.cs:Shutdown() - Killing listener thread"); | ||
82 | MainListener.Abort(); | ||
83 | localcons.WriteLine("Main.cs:Shutdown() - Killing clients"); | ||
84 | // IMPLEMENT THIS | ||
85 | localcons.WriteLine("Main.cs:Shutdown() - Closing console and terminating"); | ||
86 | localcons.Close(); | ||
87 | Environment.Exit(0); | ||
88 | } | ||
89 | |||
78 | private void Startup() { | 90 | private void Startup() { |
91 | startuptime=DateTime.Now; | ||
92 | localcons=new ServerConsole(ServerConsole.ConsoleType.Local,"",0); | ||
79 | // We check our local database first, then the grid for config options | 93 | // We check our local database first, then the grid for config options |
80 | Console.WriteLine("Main.cs:Startup() - Loading configuration"); | 94 | localcons.WriteLine("Main.cs:Startup() - Loading configuration"); |
81 | cfg = new SimConfig(); | 95 | cfg = new SimConfig(); |
82 | cfg.InitConfig(); | 96 | cfg.InitConfig(); |
83 | Console.WriteLine("Main.cs:Startup() - Contacting gridserver"); | 97 | localcons.WriteLine("Main.cs:Startup() - Contacting gridserver"); |
84 | cfg.LoadFromGrid(); | 98 | cfg.LoadFromGrid(); |
85 | 99 | ||
86 | Console.WriteLine("Main.cs:Startup() - We are " + cfg.RegionName + " at " + cfg.RegionLocX.ToString() + "," + cfg.RegionLocY.ToString()); | 100 | localcons.WriteLine("Main.cs:Startup() - We are " + cfg.RegionName + " at " + cfg.RegionLocX.ToString() + "," + cfg.RegionLocY.ToString()); |
87 | Console.WriteLine("Initialising world"); | 101 | localcons.WriteLine("Initialising world"); |
88 | local_world = cfg.LoadWorld(); | 102 | local_world = cfg.LoadWorld(); |
89 | 103 | ||
90 | Console.WriteLine("Main.cs:Startup() - Starting up messaging system"); | 104 | localcons.WriteLine("Main.cs:Startup() - Starting up main world loop"); |
105 | local_world.InitLoop(); | ||
106 | |||
107 | localcons.WriteLine("Main.cs:Startup() - Starting up messaging system"); | ||
91 | MainListener = new Thread(new ThreadStart(MainServerListener)); | 108 | MainListener = new Thread(new ThreadStart(MainServerListener)); |
92 | MainListener.Start(); | 109 | MainListener.Start(); |
93 | 110 | ||
94 | Console.WriteLine("Main.cs:Startup() - Starting up main world loop"); | 111 | Thread.Sleep(500); // give other threads a chance to catch up |
95 | local_world.InitLoop(); | 112 | string[] noparams = new string[1]; |
113 | noparams[0]=""; | ||
114 | localcons.WriteLine("\nOpenSim ready\nType help for list of commands"); | ||
96 | } | 115 | } |
97 | 116 | ||
98 | private void OnReceivedData(IAsyncResult result) { | 117 | private void OnReceivedData(IAsyncResult result) { |
@@ -102,7 +121,6 @@ namespace OpenSim | |||
102 | int numBytes = Server.EndReceiveFrom(result, ref epSender); | 121 | int numBytes = Server.EndReceiveFrom(result, ref epSender); |
103 | int packetEnd = numBytes - 1; | 122 | int packetEnd = numBytes - 1; |
104 | packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer); | 123 | packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer); |
105 | Console.Error.WriteLine(packet.ToString()); | ||
106 | 124 | ||
107 | // This is either a new client or a packet to send to an old one | 125 | // This is either a new client or a packet to send to an old one |
108 | if(ClientThreads.ContainsKey(epSender)) { | 126 | if(ClientThreads.ContainsKey(epSender)) { |
@@ -117,23 +135,24 @@ namespace OpenSim | |||
117 | } | 135 | } |
118 | 136 | ||
119 | private void MainServerListener() { | 137 | private void MainServerListener() { |
120 | Console.WriteLine("Main.cs:MainServerListener() - New thread started"); | 138 | localcons.WriteLine("Main.cs:MainServerListener() - New thread started"); |
121 | Console.WriteLine("Main.cs:MainServerListener() - Opening UDP socket on " + cfg.IPListenAddr + ":" + cfg.IPListenPort); | 139 | localcons.WriteLine("Main.cs:MainServerListener() - Opening UDP socket on " + cfg.IPListenAddr + ":" + cfg.IPListenPort); |
122 | 140 | ||
123 | ServerIncoming = new IPEndPoint(IPAddress.Any, cfg.IPListenPort); | 141 | ServerIncoming = new IPEndPoint(IPAddress.Any, cfg.IPListenPort); |
124 | Server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); | 142 | Server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); |
125 | Server.Bind(ServerIncoming); | 143 | Server.Bind(ServerIncoming); |
126 | 144 | ||
127 | Console.WriteLine("Main.cs:MainServerListener() - UDP socket bound, getting ready to listen"); | 145 | localcons.WriteLine("Main.cs:MainServerListener() - UDP socket bound, getting ready to listen"); |
128 | 146 | ||
129 | ipeSender = new IPEndPoint(IPAddress.Any, 0); | 147 | ipeSender = new IPEndPoint(IPAddress.Any, 0); |
130 | epSender = (EndPoint) ipeSender; | 148 | epSender = (EndPoint) ipeSender; |
131 | ReceivedData = new AsyncCallback(this.OnReceivedData); | 149 | ReceivedData = new AsyncCallback(this.OnReceivedData); |
132 | Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null); | 150 | Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null); |
133 | 151 | ||
134 | Console.WriteLine("Main.cs:MainServerListener() - Listening..."); | 152 | localcons.WriteLine("Main.cs:MainServerListener() - Listening..."); |
135 | while(true) { | 153 | while(true) { |
136 | Thread.Sleep(1000); | 154 | Thread.Sleep(100); |
155 | local_world.DoStuff(); | ||
137 | } | 156 | } |
138 | } | 157 | } |
139 | } | 158 | } |
diff --git a/src/OpenSimClient.cs b/src/OpenSimClient.cs index 6b00a0f..0e956c3 100644 --- a/src/OpenSimClient.cs +++ b/src/OpenSimClient.cs | |||
@@ -49,7 +49,7 @@ namespace OpenSim | |||
49 | public world.Avatar ClientAvatar; | 49 | public world.Avatar ClientAvatar; |
50 | private UseCircuitCodePacket cirpack; | 50 | private UseCircuitCodePacket cirpack; |
51 | private Thread ClientThread; | 51 | private Thread ClientThread; |
52 | private EndPoint userEP; | 52 | public EndPoint userEP; |
53 | private BlockingQueue<QueItem> PacketQueue; | 53 | private BlockingQueue<QueItem> PacketQueue; |
54 | private BlockingQueue<TransferRequestPacket> AssetRequests; | 54 | private BlockingQueue<TransferRequestPacket> AssetRequests; |
55 | private Dictionary<uint, uint> PendingAcks = new Dictionary<uint, uint>(); | 55 | private Dictionary<uint, uint> PendingAcks = new Dictionary<uint, uint>(); |
@@ -81,9 +81,9 @@ namespace OpenSim | |||
81 | 81 | ||
82 | public void AssetLoader() { | 82 | public void AssetLoader() { |
83 | if(OpenSim_Main.cfg.sandbox==false) { | 83 | if(OpenSim_Main.cfg.sandbox==false) { |
84 | Console.WriteLine("OpenSimClient.cs:AssetLoader() - Starting new thread"); | 84 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs:AssetLoader() - Starting new thread"); |
85 | TransferRequestPacket reqPacket = AssetRequests.Dequeue(); | 85 | TransferRequestPacket reqPacket = AssetRequests.Dequeue(); |
86 | Console.WriteLine("OpenSimClient.cs:AssetLoader() - Got a request, processing it"); | 86 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs:AssetLoader() - Got a request, processing it"); |
87 | LLUUID AssetID = new LLUUID(reqPacket.TransferInfo.Params, 0); | 87 | LLUUID AssetID = new LLUUID(reqPacket.TransferInfo.Params, 0); |
88 | WebRequest AssetLoad = WebRequest.Create(OpenSim_Main.cfg.AssetURL + "getasset/" + OpenSim_Main.cfg.AssetSendKey + "/" + AssetID + "/data"); | 88 | WebRequest AssetLoad = WebRequest.Create(OpenSim_Main.cfg.AssetURL + "getasset/" + OpenSim_Main.cfg.AssetSendKey + "/" + AssetID + "/data"); |
89 | WebResponse AssetResponse = AssetLoad.GetResponse(); | 89 | WebResponse AssetResponse = AssetLoad.GetResponse(); |
@@ -131,7 +131,12 @@ namespace OpenSim | |||
131 | AssetResponse.Close(); | 131 | AssetResponse.Close(); |
132 | } | 132 | } |
133 | } | 133 | } |
134 | 134 | ||
135 | public void Logout() { | ||
136 | // TODO - kill any AssetLoaders | ||
137 | ClientThread.Abort(); | ||
138 | } | ||
139 | |||
135 | public void ProcessInPacket(Packet Pack) { | 140 | public void ProcessInPacket(Packet Pack) { |
136 | ack_pack(Pack); | 141 | ack_pack(Pack); |
137 | switch(Pack.Type) { | 142 | switch(Pack.Type) { |
@@ -146,7 +151,7 @@ namespace OpenSim | |||
146 | ClientAvatar.SendInitialAppearance(); | 151 | ClientAvatar.SendInitialAppearance(); |
147 | break; | 152 | break; |
148 | case PacketType.TransferRequest: | 153 | case PacketType.TransferRequest: |
149 | Console.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got transfer request"); | 154 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got transfer request"); |
150 | // We put transfer requests into a big queue and then spawn a thread for each new one | 155 | // We put transfer requests into a big queue and then spawn a thread for each new one |
151 | TransferRequestPacket transfer = (TransferRequestPacket)Pack; | 156 | TransferRequestPacket transfer = (TransferRequestPacket)Pack; |
152 | AssetRequests.Enqueue(transfer); | 157 | AssetRequests.Enqueue(transfer); |
@@ -154,7 +159,7 @@ namespace OpenSim | |||
154 | AssetLoaderThread.Start(); | 159 | AssetLoaderThread.Start(); |
155 | break; | 160 | break; |
156 | case PacketType.LogoutRequest: | 161 | case PacketType.LogoutRequest: |
157 | Console.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got a logout request"); | 162 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got a logout request"); |
158 | lock(OpenSim_Main.local_world.Entities) { | 163 | lock(OpenSim_Main.local_world.Entities) { |
159 | OpenSim_Main.local_world.Entities.Remove(this.AgentID); | 164 | OpenSim_Main.local_world.Entities.Remove(this.AgentID); |
160 | } | 165 | } |
@@ -166,7 +171,7 @@ namespace OpenSim | |||
166 | String grTest = sr.ReadLine(); | 171 | String grTest = sr.ReadLine(); |
167 | sr.Close(); | 172 | sr.Close(); |
168 | GridResponse.Close(); | 173 | GridResponse.Close(); |
169 | Console.WriteLine("DEBUG: " + grTest); | 174 | OpenSim_Main.localcons.WriteLine("DEBUG: " + grTest); |
170 | } | 175 | } |
171 | this.ClientThread.Abort(); | 176 | this.ClientThread.Abort(); |
172 | break; | 177 | break; |
@@ -207,8 +212,6 @@ namespace OpenSim | |||
207 | { | 212 | { |
208 | if (now - packet.TickCount > RESEND_TIMEOUT) | 213 | if (now - packet.TickCount > RESEND_TIMEOUT) |
209 | { | 214 | { |
210 | Console.WriteLine("Resending " + packet.Type.ToString() + " packet, " + | ||
211 | (now - packet.TickCount) + "ms have passed", Helpers.LogLevel.Info); | ||
212 | 215 | ||
213 | packet.Header.Resent = true; | 216 | packet.Header.Resent = true; |
214 | OutPacket(packet); | 217 | OutPacket(packet); |
@@ -225,12 +228,10 @@ namespace OpenSim | |||
225 | { | 228 | { |
226 | if (PendingAcks.Count > 250) | 229 | if (PendingAcks.Count > 250) |
227 | { | 230 | { |
228 | // FIXME: Handle the odd case where we have too many pending ACKs queued up | ||
229 | Console.WriteLine("Too many ACKs queued up!", Helpers.LogLevel.Error); | ||
230 | return; | 231 | return; |
231 | } | 232 | } |
232 | 233 | ||
233 | Console.WriteLine("Sending PacketAck"); | 234 | OpenSim_Main.localcons.WriteLine("Sending PacketAck"); |
234 | 235 | ||
235 | 236 | ||
236 | int i = 0; | 237 | int i = 0; |
@@ -319,7 +320,6 @@ namespace OpenSim | |||
319 | } | 320 | } |
320 | } | 321 | } |
321 | 322 | ||
322 | Console.WriteLine("OUT: \n" + Pack.ToString()); | ||
323 | 323 | ||
324 | byte[] ZeroOutBuffer = new byte[4096]; | 324 | byte[] ZeroOutBuffer = new byte[4096]; |
325 | byte[] sendbuffer; | 325 | byte[] sendbuffer; |
@@ -333,7 +333,7 @@ namespace OpenSim | |||
333 | OpenSim_Main.Server.SendTo(sendbuffer, sendbuffer.Length, SocketFlags.None,userEP); | 333 | OpenSim_Main.Server.SendTo(sendbuffer, sendbuffer.Length, SocketFlags.None,userEP); |
334 | } | 334 | } |
335 | } catch (Exception) { | 335 | } catch (Exception) { |
336 | Console.WriteLine("OpenSimClient.cs:ProcessOutPacket() - WARNING: Socket exception occurred on connection " + userEP.ToString() + " - killing thread"); | 336 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs:ProcessOutPacket() - WARNING: Socket exception occurred on connection " + userEP.ToString() + " - killing thread"); |
337 | ClientThread.Abort(); | 337 | ClientThread.Abort(); |
338 | } | 338 | } |
339 | 339 | ||
@@ -347,7 +347,7 @@ namespace OpenSim | |||
347 | { | 347 | { |
348 | foreach (uint ack in NewPack.Header.AckList) | 348 | foreach (uint ack in NewPack.Header.AckList) |
349 | { | 349 | { |
350 | Console.WriteLine("Got appended ack: "+ack); | 350 | OpenSim_Main.localcons.WriteLine("Got appended ack: "+ack); |
351 | NeedAck.Remove(ack); | 351 | NeedAck.Remove(ack); |
352 | } | 352 | } |
353 | } | 353 | } |
@@ -362,7 +362,6 @@ namespace OpenSim | |||
362 | { | 362 | { |
363 | foreach (PacketAckPacket.PacketsBlock block in ackPacket.Packets) | 363 | foreach (PacketAckPacket.PacketsBlock block in ackPacket.Packets) |
364 | { | 364 | { |
365 | Console.WriteLine("Got PacketAck: "+block.ID); | ||
366 | NeedAck.Remove(block.ID); | 365 | NeedAck.Remove(block.ID); |
367 | } | 366 | } |
368 | } | 367 | } |
@@ -391,7 +390,7 @@ namespace OpenSim | |||
391 | } | 390 | } |
392 | 391 | ||
393 | public OpenSimClient(EndPoint remoteEP, UseCircuitCodePacket initialcirpack) { | 392 | public OpenSimClient(EndPoint remoteEP, UseCircuitCodePacket initialcirpack) { |
394 | Console.WriteLine("OpenSimClient.cs - Started up new client thread to handle incoming request"); | 393 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs - Started up new client thread to handle incoming request"); |
395 | cirpack = initialcirpack; | 394 | cirpack = initialcirpack; |
396 | userEP = remoteEP; | 395 | userEP = remoteEP; |
397 | PacketQueue = new BlockingQueue<QueItem>(); | 396 | PacketQueue = new BlockingQueue<QueItem>(); |
@@ -406,7 +405,7 @@ namespace OpenSim | |||
406 | } | 405 | } |
407 | 406 | ||
408 | private void ClientLoop() { | 407 | private void ClientLoop() { |
409 | Console.WriteLine("OpenSimClient.cs:ClientLoop() - Entered loop"); | 408 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs:ClientLoop() - Entered loop"); |
410 | while(true) { | 409 | while(true) { |
411 | QueItem nextPacket = PacketQueue.Dequeue(); | 410 | QueItem nextPacket = PacketQueue.Dequeue(); |
412 | if(nextPacket.Incoming) | 411 | if(nextPacket.Incoming) |
@@ -423,7 +422,7 @@ namespace OpenSim | |||
423 | } | 422 | } |
424 | 423 | ||
425 | private void InitNewClient() { | 424 | private void InitNewClient() { |
426 | Console.WriteLine("OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); | 425 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); |
427 | OpenSim_Main.local_world.AddViewerAgent(this); | 426 | OpenSim_Main.local_world.AddViewerAgent(this); |
428 | world.Entity tempent=OpenSim_Main.local_world.Entities[this.AgentID]; | 427 | world.Entity tempent=OpenSim_Main.local_world.Entities[this.AgentID]; |
429 | this.ClientAvatar=(world.Avatar)tempent; | 428 | this.ClientAvatar=(world.Avatar)tempent; |
@@ -431,23 +430,23 @@ namespace OpenSim | |||
431 | 430 | ||
432 | private void AuthUser() { | 431 | private void AuthUser() { |
433 | if(OpenSim_Main.cfg.sandbox==false) { | 432 | if(OpenSim_Main.cfg.sandbox==false) { |
434 | Console.WriteLine("OpenSimClient.cs:AuthUser() - Authenticating new user request with grid"); | 433 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs:AuthUser() - Authenticating new user request with grid"); |
435 | WebRequest CheckSession = WebRequest.Create(OpenSim_Main.cfg.GridURL + "/usersessions/" + OpenSim_Main.cfg.GridSendKey + "/" + cirpack.CircuitCode.ID.ToString() + "/" + cirpack.CircuitCode.Code.ToString() + "/exists"); | 434 | WebRequest CheckSession = WebRequest.Create(OpenSim_Main.cfg.GridURL + "/usersessions/" + OpenSim_Main.cfg.GridSendKey + "/" + cirpack.CircuitCode.ID.ToString() + "/" + cirpack.CircuitCode.Code.ToString() + "/exists"); |
436 | Console.WriteLine(OpenSim_Main.cfg.GridURL); | 435 | OpenSim_Main.localcons.WriteLine(OpenSim_Main.cfg.GridURL); |
437 | WebResponse GridResponse = CheckSession.GetResponse(); | 436 | WebResponse GridResponse = CheckSession.GetResponse(); |
438 | StreamReader sr = new StreamReader(GridResponse.GetResponseStream()); | 437 | StreamReader sr = new StreamReader(GridResponse.GetResponseStream()); |
439 | String grTest = sr.ReadLine(); | 438 | String grTest = sr.ReadLine(); |
440 | sr.Close(); | 439 | sr.Close(); |
441 | GridResponse.Close(); | 440 | GridResponse.Close(); |
442 | if(String.IsNullOrEmpty(grTest) || grTest.Equals("1")) { // YAY! Valid login | 441 | if(String.IsNullOrEmpty(grTest) || grTest.Equals("1")) { // YAY! Valid login |
443 | Console.WriteLine("OpenSimClient.cs:AuthUser() - Got authenticated connection from " + userEP.ToString()); | 442 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs:AuthUser() - Got authenticated connection from " + userEP.ToString()); |
444 | this.AgentID=cirpack.CircuitCode.ID; | 443 | this.AgentID=cirpack.CircuitCode.ID; |
445 | this.SessionID=cirpack.CircuitCode.SessionID; | 444 | this.SessionID=cirpack.CircuitCode.SessionID; |
446 | this.CircuitCode=cirpack.CircuitCode.Code; | 445 | this.CircuitCode=cirpack.CircuitCode.Code; |
447 | InitNewClient(); | 446 | InitNewClient(); |
448 | ClientLoop(); | 447 | ClientLoop(); |
449 | } else { // Invalid | 448 | } else { // Invalid |
450 | Console.WriteLine("OpenSimClient.cs:AuthUser() - New user request denied to " + userEP.ToString()); | 449 | OpenSim_Main.localcons.WriteLine("OpenSimClient.cs:AuthUser() - New user request denied to " + userEP.ToString()); |
451 | ClientThread.Abort(); | 450 | ClientThread.Abort(); |
452 | } | 451 | } |
453 | } else { | 452 | } else { |
diff --git a/src/ServerConsole.cs b/src/ServerConsole.cs new file mode 100644 index 0000000..690e8ee --- /dev/null +++ b/src/ServerConsole.cs | |||
@@ -0,0 +1,190 @@ | |||
1 | /* | ||
2 | Copyright (c) OpenSim project, http://osgrid.org/ | ||
3 | |||
4 | * Copyright (c) <year>, <copyright holder> | ||
5 | * All rights reserved. | ||
6 | * | ||
7 | * Redistribution and use in source and binary forms, with or without | ||
8 | * modification, are permitted provided that the following conditions are met: | ||
9 | * * Redistributions of source code must retain the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer. | ||
11 | * * Redistributions in binary form must reproduce the above copyright | ||
12 | * notice, this list of conditions and the following disclaimer in the | ||
13 | * documentation and/or other materials provided with the distribution. | ||
14 | * * Neither the name of the <organization> nor the | ||
15 | * names of its contributors may be used to endorse or promote products | ||
16 | * derived from this software without specific prior written permission. | ||
17 | * | ||
18 | * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY | ||
19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
21 | * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY | ||
22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
24 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
27 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
28 | */ | ||
29 | |||
30 | using System; | ||
31 | using System.Collections; | ||
32 | using System.Collections.Generic; | ||
33 | using System.Threading; | ||
34 | using System.IO; | ||
35 | using System.Net; | ||
36 | using libsecondlife; | ||
37 | using libsecondlife.Packets; | ||
38 | |||
39 | namespace OpenSim | ||
40 | { | ||
41 | public class ServerConsole { | ||
42 | private ConsoleType ConsType; | ||
43 | StreamWriter Log; | ||
44 | |||
45 | public enum ConsoleType { | ||
46 | Local, // Use stdio | ||
47 | TCP, // Use TCP/telnet | ||
48 | SimChat // Use in-world chat (for gods) | ||
49 | } | ||
50 | |||
51 | |||
52 | // STUPID HACK ALERT!!!! STUPID HACK ALERT!!!!! | ||
53 | // constype - the type of console to use (see enum ConsoleType) | ||
54 | // sparam - depending on the console type: | ||
55 | // TCP - the IP to bind to (127.0.0.1 if blank) | ||
56 | // Local - param ignored | ||
57 | // SimChat - the AgentID of this sim's admin | ||
58 | // and for the iparam: | ||
59 | // TCP - the port to bind to | ||
60 | // Local - param ignored | ||
61 | // SimChat - the chat channel to accept commands from | ||
62 | public ServerConsole(ConsoleType constype, string sparam, int iparam) { | ||
63 | ConsType = constype; | ||
64 | switch(constype) { | ||
65 | case ConsoleType.Local: | ||
66 | Console.WriteLine("ServerConsole.cs - creating new local console"); | ||
67 | Console.WriteLine("Logs will be saved to current directory in opensim-console.log"); | ||
68 | Log=File.AppendText("opensim-console.log"); | ||
69 | Log.WriteLine("========================================================================"); | ||
70 | Log.WriteLine("OpenSim " + VersionInfo.Version + " Started at " + DateTime.Now.ToString()); | ||
71 | break; | ||
72 | case ConsoleType.TCP: | ||
73 | break; | ||
74 | case ConsoleType.SimChat: | ||
75 | break; | ||
76 | |||
77 | default: | ||
78 | Console.WriteLine("ServerConsole.cs - what are you smoking? that isn't a valid console type!"); | ||
79 | break; | ||
80 | } | ||
81 | } | ||
82 | |||
83 | public void Close() { | ||
84 | Log.WriteLine("OpenSim shutdown at " + DateTime.Now.ToString()); | ||
85 | Log.Close(); | ||
86 | } | ||
87 | |||
88 | // You know what ReadLine() and WriteLine() do, right? And Read() and Write()? Right, you do actually know C#, right? Are you actually a programmer? Do you know english? Do you find my sense of humour in comments irritating? Good, glad you're still here | ||
89 | public void WriteLine(string Line) { | ||
90 | Log.WriteLine(Line); | ||
91 | Console.WriteLine(Line); | ||
92 | return; | ||
93 | } | ||
94 | |||
95 | public string ReadLine() { | ||
96 | string TempStr=Console.ReadLine(); | ||
97 | Log.WriteLine(TempStr); | ||
98 | return TempStr; | ||
99 | } | ||
100 | |||
101 | public int Read() { | ||
102 | int TempInt= Console.Read(); | ||
103 | Log.Write((char)TempInt); | ||
104 | return TempInt; | ||
105 | } | ||
106 | |||
107 | public void Write(string Line) { | ||
108 | Console.Write(Line); | ||
109 | Log.Write(Line); | ||
110 | return; | ||
111 | } | ||
112 | |||
113 | // Displays a command prompt and waits for the user to enter a string, then returns that string | ||
114 | public string CmdPrompt(string prompt) { | ||
115 | this.Write(prompt); | ||
116 | return this.ReadLine(); | ||
117 | } | ||
118 | |||
119 | // Displays a command prompt and returns a default value if the user simply presses enter | ||
120 | public string CmdPrompt(string prompt, string defaultresponse) { | ||
121 | string temp=CmdPrompt(prompt); | ||
122 | if(temp=="") { | ||
123 | return defaultresponse; | ||
124 | } else { | ||
125 | return temp; | ||
126 | } | ||
127 | } | ||
128 | |||
129 | // Displays a command prompt and returns a default value, user may only enter 1 of 2 options | ||
130 | public string CmdPrompt(string prompt, string defaultresponse, string OptionA, string OptionB) { | ||
131 | bool itisdone=false; | ||
132 | string temp=CmdPrompt(prompt,defaultresponse); | ||
133 | while(itisdone==false) { | ||
134 | if((temp==OptionA) || (temp==OptionB)) { | ||
135 | itisdone=true; | ||
136 | } else { | ||
137 | this.WriteLine("Valid options are " + OptionA + " or " + OptionB); | ||
138 | temp=CmdPrompt(prompt,defaultresponse); | ||
139 | } | ||
140 | } | ||
141 | return temp; | ||
142 | } | ||
143 | |||
144 | // Runs a command with a number of parameters | ||
145 | public Object RunCmd(string Cmd, string[] cmdparams) { | ||
146 | switch(Cmd) { | ||
147 | case "show": | ||
148 | ShowCommands(cmdparams[0]); | ||
149 | break; | ||
150 | |||
151 | case "shutdown": | ||
152 | OpenSim_Main.Shutdown(); | ||
153 | break; | ||
154 | } | ||
155 | return null; | ||
156 | } | ||
157 | |||
158 | // Shows data about something | ||
159 | public void ShowCommands(string ShowWhat) { | ||
160 | switch(ShowWhat) { | ||
161 | case "uptime": | ||
162 | this.WriteLine("OpenSim has been running since " + OpenSim_Main.startuptime.ToString()); | ||
163 | this.WriteLine("That is " + (DateTime.Now-OpenSim_Main.startuptime).ToString()); | ||
164 | break; | ||
165 | case "users": | ||
166 | OpenSim.world.Avatar TempAv; | ||
167 | this.WriteLine(String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}","Firstname", "Lastname","Agent ID", "Session ID", "Circuit", "IP")); | ||
168 | foreach (libsecondlife.LLUUID UUID in OpenSim_Main.local_world.Entities.Keys) { | ||
169 | TempAv=(OpenSim.world.Avatar)OpenSim_Main.local_world.Entities[UUID]; | ||
170 | this.WriteLine(String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}",TempAv.firstname, TempAv.lastname,UUID, TempAv.ControllingClient.SessionID, TempAv.ControllingClient.CircuitCode, TempAv.ControllingClient.userEP.ToString())); | ||
171 | } | ||
172 | break; | ||
173 | } | ||
174 | } | ||
175 | |||
176 | // Displays a prompt to the user and then runs the command they entered | ||
177 | public void MainConsolePrompt() { | ||
178 | string[] tempstrarray; | ||
179 | string tempstr = this.CmdPrompt("OpenSim-" + OpenSim_Main.cfg.RegionHandle.ToString() + " # "); | ||
180 | tempstrarray = tempstr.Split(' '); | ||
181 | string cmd=tempstrarray[0]; | ||
182 | Array.Reverse(tempstrarray); | ||
183 | Array.Resize<string>(ref tempstrarray,tempstrarray.Length-1); | ||
184 | Array.Reverse(tempstrarray); | ||
185 | string[] cmdparams=(string[])tempstrarray; | ||
186 | RunCmd(cmd,cmdparams); | ||
187 | } | ||
188 | } | ||
189 | |||
190 | } | ||
diff --git a/src/world/Avatar.cs b/src/world/Avatar.cs index 6dcc1dd..26b2002 100644 --- a/src/world/Avatar.cs +++ b/src/world/Avatar.cs | |||
@@ -21,7 +21,7 @@ namespace OpenSim.world | |||
21 | private libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock AvatarTemplate; | 21 | private libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock AvatarTemplate; |
22 | 22 | ||
23 | public Avatar(OpenSimClient TheClient) { | 23 | public Avatar(OpenSimClient TheClient) { |
24 | Console.WriteLine("Avatar.cs - Loading details from grid (DUMMY)"); | 24 | OpenSim_Main.localcons.WriteLine("Avatar.cs - Loading details from grid (DUMMY)"); |
25 | ControllingClient=TheClient; | 25 | ControllingClient=TheClient; |
26 | SetupTemplate("avatar-template.dat"); | 26 | SetupTemplate("avatar-template.dat"); |
27 | 27 | ||
@@ -32,8 +32,6 @@ namespace OpenSim.world | |||
32 | lock(this) { | 32 | lock(this) { |
33 | base.update(); | 33 | base.update(); |
34 | 34 | ||
35 | Console.WriteLine("KeyMask: " + this.CurrentKeyMask); | ||
36 | |||
37 | oldvel=this.velocity; | 35 | oldvel=this.velocity; |
38 | oldpos=this.position; | 36 | oldpos=this.position; |
39 | if((this.CurrentKeyMask & (uint)MainAvatar.AgentUpdateFlags.AGENT_CONTROL_AT_POS) != 0) { | 37 | if((this.CurrentKeyMask & (uint)MainAvatar.AgentUpdateFlags.AGENT_CONTROL_AT_POS) != 0) { |
@@ -42,7 +40,6 @@ namespace OpenSim.world | |||
42 | this.velocity.X = tmpVelocity.x; | 40 | this.velocity.X = tmpVelocity.x; |
43 | this.velocity.Y = tmpVelocity.y; | 41 | this.velocity.Y = tmpVelocity.y; |
44 | this.velocity.Z = tmpVelocity.z; | 42 | this.velocity.Z = tmpVelocity.z; |
45 | Console.WriteLine("Walking at "+ this.velocity.ToString()); | ||
46 | this.walking=true; | 43 | this.walking=true; |
47 | } else { | 44 | } else { |
48 | this.velocity.X=0; | 45 | this.velocity.X=0; |
@@ -82,7 +79,7 @@ namespace OpenSim.world | |||
82 | } | 79 | } |
83 | 80 | ||
84 | public void CompleteMovement(World RegionInfo) { | 81 | public void CompleteMovement(World RegionInfo) { |
85 | Console.WriteLine("Avatar.cs:CompleteMovement() - Constructing AgentMovementComplete packet"); | 82 | OpenSim_Main.localcons.WriteLine("Avatar.cs:CompleteMovement() - Constructing AgentMovementComplete packet"); |
86 | AgentMovementCompletePacket mov = new AgentMovementCompletePacket(); | 83 | AgentMovementCompletePacket mov = new AgentMovementCompletePacket(); |
87 | mov.AgentData.SessionID = this.ControllingClient.SessionID; | 84 | mov.AgentData.SessionID = this.ControllingClient.SessionID; |
88 | mov.AgentData.AgentID = this.ControllingClient.AgentID; | 85 | mov.AgentData.AgentID = this.ControllingClient.AgentID; |
@@ -92,7 +89,7 @@ namespace OpenSim.world | |||
92 | mov.Data.Position = new LLVector3((float)this.position.X, (float)this.position.Y, (float)this.position.Z); | 89 | mov.Data.Position = new LLVector3((float)this.position.X, (float)this.position.Y, (float)this.position.Z); |
93 | mov.Data.LookAt = new LLVector3(0.99f, 0.042f, 0); | 90 | mov.Data.LookAt = new LLVector3(0.99f, 0.042f, 0); |
94 | 91 | ||
95 | Console.WriteLine("Sending AgentMovementComplete packet"); | 92 | OpenSim_Main.localcons.WriteLine("Sending AgentMovementComplete packet"); |
96 | ControllingClient.OutPacket(mov); | 93 | ControllingClient.OutPacket(mov); |
97 | } | 94 | } |
98 | 95 | ||
@@ -213,11 +210,11 @@ namespace OpenSim.world | |||
213 | } | 210 | } |
214 | 211 | ||
215 | public void SendRegionHandshake(World RegionInfo) { | 212 | public void SendRegionHandshake(World RegionInfo) { |
216 | Console.WriteLine("Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet"); | 213 | OpenSim_Main.localcons.WriteLine("Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet"); |
217 | System.Text.Encoding _enc = System.Text.Encoding.ASCII; | 214 | System.Text.Encoding _enc = System.Text.Encoding.ASCII; |
218 | RegionHandshakePacket handshake = new RegionHandshakePacket(); | 215 | RegionHandshakePacket handshake = new RegionHandshakePacket(); |
219 | 216 | ||
220 | Console.WriteLine("Avatar.cs:SendRegionhandshake() - Filling in RegionHandshake details"); | 217 | OpenSim_Main.localcons.WriteLine("Avatar.cs:SendRegionhandshake() - Filling in RegionHandshake details"); |
221 | handshake.RegionInfo.BillableFactor = 0; | 218 | handshake.RegionInfo.BillableFactor = 0; |
222 | handshake.RegionInfo.IsEstateManager = false; | 219 | handshake.RegionInfo.IsEstateManager = false; |
223 | handshake.RegionInfo.TerrainHeightRange00 = 60; | 220 | handshake.RegionInfo.TerrainHeightRange00 = 60; |
@@ -243,7 +240,7 @@ namespace OpenSim.world | |||
243 | handshake.RegionInfo.TerrainDetail3 = new LLUUID("00000000-0000-0000-0000-000000000000"); | 240 | handshake.RegionInfo.TerrainDetail3 = new LLUUID("00000000-0000-0000-0000-000000000000"); |
244 | handshake.RegionInfo.CacheID = new LLUUID("545ec0a5-5751-1026-8a0b-216e38a7ab37"); | 241 | handshake.RegionInfo.CacheID = new LLUUID("545ec0a5-5751-1026-8a0b-216e38a7ab37"); |
245 | 242 | ||
246 | Console.WriteLine("Avatar.cs:SendRegionHandshake() - Sending RegionHandshake packet"); | 243 | OpenSim_Main.localcons.WriteLine("Avatar.cs:SendRegionHandshake() - Sending RegionHandshake packet"); |
247 | this.ControllingClient.OutPacket(handshake); | 244 | this.ControllingClient.OutPacket(handshake); |
248 | } | 245 | } |
249 | 246 | ||
diff --git a/src/world/PhysicsEngine.cs b/src/world/PhysicsEngine.cs index 4abf1f2..b237f5e 100644 --- a/src/world/PhysicsEngine.cs +++ b/src/world/PhysicsEngine.cs | |||
@@ -14,7 +14,7 @@ namespace OpenSim.world | |||
14 | } | 14 | } |
15 | 15 | ||
16 | public void Startup() { | 16 | public void Startup() { |
17 | Console.WriteLine("PhysicsEngine.cs:Startup() - DOING NOTHING, DUMMY FUNCTION!"); | 17 | OpenSim_Main.localcons.WriteLine("PhysicsEngine.cs:Startup() - DOING NOTHING, DUMMY FUNCTION!"); |
18 | } | 18 | } |
19 | 19 | ||
20 | public void DoStuff(World simworld) { | 20 | public void DoStuff(World simworld) { |
diff --git a/src/world/World.cs b/src/world/World.cs index f32f9ef..2f73bd5 100644 --- a/src/world/World.cs +++ b/src/world/World.cs | |||
@@ -20,10 +20,10 @@ namespace OpenSim.world | |||
20 | 20 | ||
21 | public World() | 21 | public World() |
22 | { | 22 | { |
23 | Console.WriteLine("World.cs - creating new entitities instance"); | 23 | OpenSim_Main.localcons.WriteLine("World.cs - creating new entitities instance"); |
24 | Entities = new Dictionary<libsecondlife.LLUUID, Entity>(); | 24 | Entities = new Dictionary<libsecondlife.LLUUID, Entity>(); |
25 | 25 | ||
26 | Console.WriteLine("World.cs - creating LandMap"); | 26 | OpenSim_Main.localcons.WriteLine("World.cs - creating LandMap"); |
27 | terrainengine = new TerrainDecode(); | 27 | terrainengine = new TerrainDecode(); |
28 | LandMap = new float[65536]; | 28 | LandMap = new float[65536]; |
29 | for(int i =0; i < 65536; i++) { | 29 | for(int i =0; i < 65536; i++) { |
@@ -33,7 +33,7 @@ namespace OpenSim.world | |||
33 | } | 33 | } |
34 | 34 | ||
35 | public void InitLoop() { | 35 | public void InitLoop() { |
36 | Console.WriteLine("World.cs:StartLoop() - Initialising physics"); | 36 | OpenSim_Main.localcons.WriteLine("World.cs:StartLoop() - Initialising physics"); |
37 | this.physics = new PhysicsEngine(); | 37 | this.physics = new PhysicsEngine(); |
38 | physics.Startup(); | 38 | physics.Startup(); |
39 | } | 39 | } |
@@ -76,11 +76,11 @@ namespace OpenSim.world | |||
76 | } | 76 | } |
77 | 77 | ||
78 | public void AddViewerAgent(OpenSimClient AgentClient) { | 78 | public void AddViewerAgent(OpenSimClient AgentClient) { |
79 | Console.WriteLine("World.cs:AddViewerAgent() - Creating new avatar for remote viewer agent"); | 79 | OpenSim_Main.localcons.WriteLine("World.cs:AddViewerAgent() - Creating new avatar for remote viewer agent"); |
80 | Avatar NewAvatar = new Avatar(AgentClient); | 80 | Avatar NewAvatar = new Avatar(AgentClient); |
81 | Console.WriteLine("World.cs:AddViewerAgent() - Adding new avatar to world"); | 81 | OpenSim_Main.localcons.WriteLine("World.cs:AddViewerAgent() - Adding new avatar to world"); |
82 | this.Entities.Add(AgentClient.AgentID, NewAvatar); | 82 | this.Entities.Add(AgentClient.AgentID, NewAvatar); |
83 | Console.WriteLine("World.cs:AddViewerAgent() - Starting RegionHandshake "); | 83 | OpenSim_Main.localcons.WriteLine("World.cs:AddViewerAgent() - Starting RegionHandshake "); |
84 | NewAvatar.SendRegionHandshake(this); | 84 | NewAvatar.SendRegionHandshake(this); |
85 | this.Update(); // will work for now, but needs to be optimised so we don't update everything in the sim for each new user | 85 | this.Update(); // will work for now, but needs to be optimised so we don't update everything in the sim for each new user |
86 | } | 86 | } |