From b8d9737a47696952bedec33dface8f18df47341f Mon Sep 17 00:00:00 2001
From: Sean Dague
Date: Mon, 17 Sep 2007 12:52:03 +0000
Subject: fixing me some line endings
---
.../Environment/Modules/AssetDownloadModule.cs | 100 ++---
.../Environment/Modules/AvatarProfilesModule.cs | 142 +++----
OpenSim/Region/Environment/Modules/ChatModule.cs | 432 ++++++++++-----------
.../Environment/Modules/DynamicTextureModule.cs | 318 +++++++--------
OpenSim/Region/Environment/Modules/EmailModule.cs | 20 +-
.../Region/Environment/Modules/FriendsModule.cs | 80 ++--
OpenSim/Region/Environment/Modules/GroupsModule.cs | 80 ++--
.../Environment/Modules/InstantMessageModule.cs | 80 ++--
.../Region/Environment/Modules/InventoryModule.cs | 80 ++--
.../Environment/Modules/ScriptsHttpRequests.cs | 20 +-
.../Region/Environment/Modules/TeleportModule.cs | 20 +-
.../Environment/Modules/TextureDownloadModule.cs | 108 +++---
OpenSim/Region/Environment/Modules/XferModule.cs | 360 ++++++++---------
13 files changed, 920 insertions(+), 920 deletions(-)
(limited to 'OpenSim/Region/Environment/Modules')
diff --git a/OpenSim/Region/Environment/Modules/AssetDownloadModule.cs b/OpenSim/Region/Environment/Modules/AssetDownloadModule.cs
index 21a7e61..7a53f6f 100644
--- a/OpenSim/Region/Environment/Modules/AssetDownloadModule.cs
+++ b/OpenSim/Region/Environment/Modules/AssetDownloadModule.cs
@@ -1,50 +1,50 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Interfaces;
-
-
-namespace OpenSim.Region.Environment.Modules
-{
- public class AssetDownloadModule : IRegionModule
- {
- private Scene m_scene;
-
- public AssetDownloadModule()
- {
-
- }
-
- public void Initialise(Scene scene)
- {
- m_scene = scene;
- m_scene.EventManager.OnNewClient += NewClient;
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void CloseDown()
- {
- }
-
- public string GetName()
- {
- return "AssetDownloadModule";
- }
-
- public bool IsSharedModule()
- {
- return false;
- }
-
- public void NewClient(IClientAPI client)
- {
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Interfaces;
+
+
+namespace OpenSim.Region.Environment.Modules
+{
+ public class AssetDownloadModule : IRegionModule
+ {
+ private Scene m_scene;
+
+ public AssetDownloadModule()
+ {
+
+ }
+
+ public void Initialise(Scene scene)
+ {
+ m_scene = scene;
+ m_scene.EventManager.OnNewClient += NewClient;
+ }
+
+ public void PostInitialise()
+ {
+
+ }
+
+ public void CloseDown()
+ {
+ }
+
+ public string GetName()
+ {
+ return "AssetDownloadModule";
+ }
+
+ public bool IsSharedModule()
+ {
+ return false;
+ }
+
+ public void NewClient(IClientAPI client)
+ {
+ }
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/AvatarProfilesModule.cs b/OpenSim/Region/Environment/Modules/AvatarProfilesModule.cs
index 1ad061a..c349888 100644
--- a/OpenSim/Region/Environment/Modules/AvatarProfilesModule.cs
+++ b/OpenSim/Region/Environment/Modules/AvatarProfilesModule.cs
@@ -1,71 +1,71 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules
-{
- public class AvatarProfilesModule :IRegionModule
- {
-
- private Scene m_scene;
-
- public AvatarProfilesModule()
- {
-
- }
-
- public void Initialise(Scene scene)
- {
- m_scene = scene;
- m_scene.EventManager.OnNewClient += NewClient;
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void CloseDown()
- {
-
- }
-
- public string GetName()
- {
- return "AvatarProfilesModule";
- }
-
- public bool IsSharedModule()
- {
- return false;
- }
-
- public void NewClient(IClientAPI client)
- {
- client.OnRequestAvatarProperties += RequestAvatarProperty;
- }
-
- public void RemoveClient(IClientAPI client)
- {
- client.OnRequestAvatarProperties -= RequestAvatarProperty;
- }
-
- ///
- ///
- ///
- ///
- ///
- public void RequestAvatarProperty(IClientAPI remoteClient, LLUUID avatarID)
- {
- string about = "OpenSim crash test dummy";
- string bornOn = "Before now";
- string flAbout = "First life? What is one of those? OpenSim is my life!";
- LLUUID partner = new LLUUID("11111111-1111-0000-0000-000100bba000");
- remoteClient.SendAvatarProperties(avatarID, about, bornOn, "", flAbout, 0, LLUUID.Zero, LLUUID.Zero, "", partner);
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules
+{
+ public class AvatarProfilesModule :IRegionModule
+ {
+
+ private Scene m_scene;
+
+ public AvatarProfilesModule()
+ {
+
+ }
+
+ public void Initialise(Scene scene)
+ {
+ m_scene = scene;
+ m_scene.EventManager.OnNewClient += NewClient;
+ }
+
+ public void PostInitialise()
+ {
+
+ }
+
+ public void CloseDown()
+ {
+
+ }
+
+ public string GetName()
+ {
+ return "AvatarProfilesModule";
+ }
+
+ public bool IsSharedModule()
+ {
+ return false;
+ }
+
+ public void NewClient(IClientAPI client)
+ {
+ client.OnRequestAvatarProperties += RequestAvatarProperty;
+ }
+
+ public void RemoveClient(IClientAPI client)
+ {
+ client.OnRequestAvatarProperties -= RequestAvatarProperty;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void RequestAvatarProperty(IClientAPI remoteClient, LLUUID avatarID)
+ {
+ string about = "OpenSim crash test dummy";
+ string bornOn = "Before now";
+ string flAbout = "First life? What is one of those? OpenSim is my life!";
+ LLUUID partner = new LLUUID("11111111-1111-0000-0000-000100bba000");
+ remoteClient.SendAvatarProperties(avatarID, about, bornOn, "", flAbout, 0, LLUUID.Zero, LLUUID.Zero, "", partner);
+ }
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/ChatModule.cs b/OpenSim/Region/Environment/Modules/ChatModule.cs
index a46343b..8d3a553 100644
--- a/OpenSim/Region/Environment/Modules/ChatModule.cs
+++ b/OpenSim/Region/Environment/Modules/ChatModule.cs
@@ -1,216 +1,216 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Net;
-using System.Net.Sockets;
-using System.Threading;
-using System.IO;
-using libsecondlife;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Interfaces;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Utilities;
-using OpenSim.Framework.Console;
-
-namespace OpenSim.Region.Environment.Modules
-{
- public class ChatModule : IRegionModule, ISimChat
- {
- private Scene m_scene;
-
- private string m_server = "irc2.choopa.net";
-
- // private int m_port = 6668;
- //private string m_user = "USER OpenSimBot 8 * :I'm a OpenSim to irc bot";
- private string m_nick = "OSimBot";
- private string m_channel = "#opensim";
-
- // private NetworkStream m_stream;
- private TcpClient m_irc;
- private StreamWriter m_ircWriter;
- private StreamReader m_ircReader;
-
- // private Thread pingSender;
- // private Thread listener;
-
- private bool connected = false;
-
- public ChatModule()
- {
- m_nick = "OSimBot" + Util.RandomClass.Next(1, 99);
- m_irc = null;
- m_ircWriter = null;
- m_ircReader = null;
- }
-
- public void Initialise(Scene scene)
- {
- m_scene = scene;
- m_scene.EventManager.OnNewClient += NewClient;
-
- m_scene.RegisterModuleInterface(this);
- }
-
- public void PostInitialise()
- {
- /*
- try
- {
- m_irc = new TcpClient(m_server, m_port);
- m_stream = m_irc.GetStream();
- m_ircReader = new StreamReader(m_stream);
- m_ircWriter = new StreamWriter(m_stream);
-
- pingSender = new Thread(new ThreadStart(this.PingRun));
- pingSender.Start();
-
- listener = new Thread(new ThreadStart(this.ListenerRun));
- listener.Start();
-
- m_ircWriter.WriteLine(m_user);
- m_ircWriter.Flush();
- m_ircWriter.WriteLine("NICK " + m_nick);
- m_ircWriter.Flush();
- m_ircWriter.WriteLine("JOIN " + m_channel);
- m_ircWriter.Flush();
- connected = true;
- }
- catch (Exception e)
- {
- Console.WriteLine(e.ToString());
- }
- */
- }
-
- public void CloseDown()
- {
- m_ircWriter.Close();
- m_ircReader.Close();
- m_irc.Close();
- }
-
- public string GetName()
- {
- return "ChatModule";
- }
-
- public bool IsSharedModule()
- {
- return false;
- }
-
- public void NewClient(IClientAPI client)
- {
- client.OnChatFromViewer += SimChat;
- }
-
- public void PingRun()
- {
- while (true)
- {
- m_ircWriter.WriteLine("PING :" + m_server);
- m_ircWriter.Flush();
- Thread.Sleep(15000);
- }
- }
-
- public void ListenerRun()
- {
- string inputLine;
- LLVector3 pos = new LLVector3(128, 128, 20);
- while (true)
- {
- while ((inputLine = m_ircReader.ReadLine()) != null)
- {
- Console.WriteLine(inputLine);
- if (inputLine.Contains(m_channel))
- {
- string mess = inputLine.Substring(inputLine.IndexOf(m_channel));
- m_scene.ForEachScenePresence(delegate(ScenePresence presence)
- {
- presence.ControllingClient.SendChatMessage(Helpers.StringToField(mess), 255, pos, "IRC:",
- LLUUID.Zero);
- });
- }
- }
- }
- }
-
- public void SimChat(byte[] message, byte type, int channel, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
- {
- ScenePresence avatar = null;
- avatar = m_scene.RequestAvatar(fromAgentID);
- if (avatar != null)
- {
- fromPos = avatar.AbsolutePosition;
- fromName = avatar.Firstname + " " + avatar.Lastname;
- avatar = null;
- }
-
- if (connected)
- {
- m_ircWriter.WriteLine("PRIVMSG " + m_channel + " :" + "<" + fromName + ">: " +
- Util.FieldToString(message));
- m_ircWriter.Flush();
- }
-
- if (channel == 0)
- {
- m_scene.ForEachScenePresence(delegate(ScenePresence presence)
- {
- int dis = -1000;
-
- //err ??? the following code seems to be request a scenePresence when it already has a ref to it
- avatar = m_scene.RequestAvatar(presence.ControllingClient.AgentId);
- if (avatar != null)
- {
- dis = (int) avatar.AbsolutePosition.GetDistanceTo(fromPos);
- }
-
- 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
- presence.ControllingClient.SendChatMessage(message,
- type,
- fromPos,
- fromName,
- fromAgentID);
- }
- break;
- case 1: // Say
- if ((dis < 30) && (dis > -30))
- {
- //Console.WriteLine("sending chat");
- presence.ControllingClient.SendChatMessage(message,
- type,
- fromPos,
- fromName,
- fromAgentID);
- }
- break;
- case 2: // Shout
- if ((dis < 100) && (dis > -100))
- {
- presence.ControllingClient.SendChatMessage(message,
- type,
- fromPos,
- fromName,
- fromAgentID);
- }
- break;
-
- case 0xff: // Broadcast
- presence.ControllingClient.SendChatMessage(message, type,
- fromPos,
- fromName,
- fromAgentID);
- break;
- }
- });
- }
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Net;
+using System.Net.Sockets;
+using System.Threading;
+using System.IO;
+using libsecondlife;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Interfaces;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Utilities;
+using OpenSim.Framework.Console;
+
+namespace OpenSim.Region.Environment.Modules
+{
+ public class ChatModule : IRegionModule, ISimChat
+ {
+ private Scene m_scene;
+
+ private string m_server = "irc2.choopa.net";
+
+ // private int m_port = 6668;
+ //private string m_user = "USER OpenSimBot 8 * :I'm a OpenSim to irc bot";
+ private string m_nick = "OSimBot";
+ private string m_channel = "#opensim";
+
+ // private NetworkStream m_stream;
+ private TcpClient m_irc;
+ private StreamWriter m_ircWriter;
+ private StreamReader m_ircReader;
+
+ // private Thread pingSender;
+ // private Thread listener;
+
+ private bool connected = false;
+
+ public ChatModule()
+ {
+ m_nick = "OSimBot" + Util.RandomClass.Next(1, 99);
+ m_irc = null;
+ m_ircWriter = null;
+ m_ircReader = null;
+ }
+
+ public void Initialise(Scene scene)
+ {
+ m_scene = scene;
+ m_scene.EventManager.OnNewClient += NewClient;
+
+ m_scene.RegisterModuleInterface(this);
+ }
+
+ public void PostInitialise()
+ {
+ /*
+ try
+ {
+ m_irc = new TcpClient(m_server, m_port);
+ m_stream = m_irc.GetStream();
+ m_ircReader = new StreamReader(m_stream);
+ m_ircWriter = new StreamWriter(m_stream);
+
+ pingSender = new Thread(new ThreadStart(this.PingRun));
+ pingSender.Start();
+
+ listener = new Thread(new ThreadStart(this.ListenerRun));
+ listener.Start();
+
+ m_ircWriter.WriteLine(m_user);
+ m_ircWriter.Flush();
+ m_ircWriter.WriteLine("NICK " + m_nick);
+ m_ircWriter.Flush();
+ m_ircWriter.WriteLine("JOIN " + m_channel);
+ m_ircWriter.Flush();
+ connected = true;
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+ */
+ }
+
+ public void CloseDown()
+ {
+ m_ircWriter.Close();
+ m_ircReader.Close();
+ m_irc.Close();
+ }
+
+ public string GetName()
+ {
+ return "ChatModule";
+ }
+
+ public bool IsSharedModule()
+ {
+ return false;
+ }
+
+ public void NewClient(IClientAPI client)
+ {
+ client.OnChatFromViewer += SimChat;
+ }
+
+ public void PingRun()
+ {
+ while (true)
+ {
+ m_ircWriter.WriteLine("PING :" + m_server);
+ m_ircWriter.Flush();
+ Thread.Sleep(15000);
+ }
+ }
+
+ public void ListenerRun()
+ {
+ string inputLine;
+ LLVector3 pos = new LLVector3(128, 128, 20);
+ while (true)
+ {
+ while ((inputLine = m_ircReader.ReadLine()) != null)
+ {
+ Console.WriteLine(inputLine);
+ if (inputLine.Contains(m_channel))
+ {
+ string mess = inputLine.Substring(inputLine.IndexOf(m_channel));
+ m_scene.ForEachScenePresence(delegate(ScenePresence presence)
+ {
+ presence.ControllingClient.SendChatMessage(Helpers.StringToField(mess), 255, pos, "IRC:",
+ LLUUID.Zero);
+ });
+ }
+ }
+ }
+ }
+
+ public void SimChat(byte[] message, byte type, int channel, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
+ {
+ ScenePresence avatar = null;
+ avatar = m_scene.RequestAvatar(fromAgentID);
+ if (avatar != null)
+ {
+ fromPos = avatar.AbsolutePosition;
+ fromName = avatar.Firstname + " " + avatar.Lastname;
+ avatar = null;
+ }
+
+ if (connected)
+ {
+ m_ircWriter.WriteLine("PRIVMSG " + m_channel + " :" + "<" + fromName + ">: " +
+ Util.FieldToString(message));
+ m_ircWriter.Flush();
+ }
+
+ if (channel == 0)
+ {
+ m_scene.ForEachScenePresence(delegate(ScenePresence presence)
+ {
+ int dis = -1000;
+
+ //err ??? the following code seems to be request a scenePresence when it already has a ref to it
+ avatar = m_scene.RequestAvatar(presence.ControllingClient.AgentId);
+ if (avatar != null)
+ {
+ dis = (int) avatar.AbsolutePosition.GetDistanceTo(fromPos);
+ }
+
+ 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
+ presence.ControllingClient.SendChatMessage(message,
+ type,
+ fromPos,
+ fromName,
+ fromAgentID);
+ }
+ break;
+ case 1: // Say
+ if ((dis < 30) && (dis > -30))
+ {
+ //Console.WriteLine("sending chat");
+ presence.ControllingClient.SendChatMessage(message,
+ type,
+ fromPos,
+ fromName,
+ fromAgentID);
+ }
+ break;
+ case 2: // Shout
+ if ((dis < 100) && (dis > -100))
+ {
+ presence.ControllingClient.SendChatMessage(message,
+ type,
+ fromPos,
+ fromName,
+ fromAgentID);
+ }
+ break;
+
+ case 0xff: // Broadcast
+ presence.ControllingClient.SendChatMessage(message, type,
+ fromPos,
+ fromName,
+ fromAgentID);
+ break;
+ }
+ });
+ }
+ }
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/DynamicTextureModule.cs b/OpenSim/Region/Environment/Modules/DynamicTextureModule.cs
index 8223919..bbd9810 100644
--- a/OpenSim/Region/Environment/Modules/DynamicTextureModule.cs
+++ b/OpenSim/Region/Environment/Modules/DynamicTextureModule.cs
@@ -1,159 +1,159 @@
-using System.Text;
-using System.Net;
-using System.Net.Sockets;
-using System.Threading;
-using System.IO;
-using System.Collections.Generic;
-using libsecondlife;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Interfaces;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Utilities;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Region.Environment.Modules
-{
- public class DynamicTextureModule :IRegionModule, IDynamicTextureManager
- {
- private Dictionary RegisteredScenes = new Dictionary();
- private Dictionary RenderPlugins= new Dictionary();
- private Dictionary Updaters = new Dictionary();
-
- public void Initialise(Scene scene)
- {
- if (!RegisteredScenes.ContainsKey(scene.RegionInfo.SimUUID))
- {
- RegisteredScenes.Add(scene.RegionInfo.SimUUID, scene);
- scene.RegisterModuleInterface(this);
- }
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void CloseDown()
- {
- }
-
- public string GetName()
- {
- return "DynamicTextureModule";
- }
-
- public bool IsSharedModule()
- {
- return true;
- }
-
- public void RegisterRender(string handleType, IDynamicTextureRender render)
- {
- if (!RenderPlugins.ContainsKey(handleType))
- {
- RenderPlugins.Add(handleType, render);
- }
- }
-
- public void ReturnData(LLUUID id, byte[] data)
- {
- if (Updaters.ContainsKey(id))
- {
- DynamicTextureUpdater updater = Updaters[id];
- if (RegisteredScenes.ContainsKey(updater.SimUUID))
- {
- Scene scene = RegisteredScenes[updater.SimUUID];
- updater.DataReceived(data, scene);
- }
- }
- }
-
- public LLUUID AddDynamicTextureURL(LLUUID simID, LLUUID primID, string contentType, string url, string extraParams, int updateTimer)
- {
- System.Console.WriteLine("dynamic texture being created: " + url + " of type " + contentType);
- if (this.RenderPlugins.ContainsKey(contentType))
- {
- DynamicTextureUpdater updater = new DynamicTextureUpdater();
- updater.SimUUID = simID;
- updater.PrimID = primID;
- updater.ContentType = contentType;
- updater.Url = url;
- updater.UpdateTimer = updateTimer;
- updater.UpdaterID = LLUUID.Random();
- updater.Params = extraParams;
-
- if (!this.Updaters.ContainsKey(updater.UpdaterID))
- {
- Updaters.Add(updater.UpdaterID, updater);
- }
-
- RenderPlugins[contentType].AsyncConvertUrl(updater.UpdaterID, url, extraParams);
- return updater.UpdaterID;
- }
- return LLUUID.Zero;
- }
-
- public LLUUID AddDynamicTextureData(LLUUID simID, LLUUID primID, string contentType, string data, string extraParams, int updateTimer)
- {
- if (this.RenderPlugins.ContainsKey(contentType))
- {
- DynamicTextureUpdater updater = new DynamicTextureUpdater();
- updater.SimUUID = simID;
- updater.PrimID = primID;
- updater.ContentType = contentType;
- updater.BodyData = data;
- updater.UpdateTimer = updateTimer;
- updater.UpdaterID = LLUUID.Random();
- updater.Params = extraParams;
-
- if (!this.Updaters.ContainsKey(updater.UpdaterID))
- {
- Updaters.Add(updater.UpdaterID, updater);
- }
-
- RenderPlugins[contentType].AsyncConvertData(updater.UpdaterID, data, extraParams);
- return updater.UpdaterID;
- }
- return LLUUID.Zero;
- }
-
- public class DynamicTextureUpdater
- {
- public LLUUID SimUUID;
- public LLUUID UpdaterID;
- public string ContentType;
- public string Url;
- public string BodyData;
- public LLUUID PrimID;
- public int UpdateTimer;
- public LLUUID LastAssetID;
- public string Params;
-
- public DynamicTextureUpdater()
- {
- LastAssetID = LLUUID.Zero;
- UpdateTimer = 0;
- BodyData = null;
- }
-
- public void DataReceived(byte[] data, Scene scene)
- {
- //TODO delete the last asset(data), if it was a dynamic texture
-
- AssetBase asset = new AssetBase();
- asset.FullID = LLUUID.Random();
- asset.Data = data;
- asset.Name = "DynamicImage" + Util.RandomClass.Next(1, 10000);
- asset.Type = 0;
- scene.commsManager.AssetCache.AddAsset(asset);
-
- this.LastAssetID = asset.FullID;
-
- SceneObjectPart part = scene.GetSceneObjectPart(PrimID);
- part.Shape.TextureEntry = new LLObject.TextureEntry(asset.FullID).ToBytes();
- part.ScheduleFullUpdate();
- }
- }
- }
-}
+using System.Text;
+using System.Net;
+using System.Net.Sockets;
+using System.Threading;
+using System.IO;
+using System.Collections.Generic;
+using libsecondlife;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Interfaces;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Utilities;
+using OpenSim.Framework.Console;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Region.Environment.Modules
+{
+ public class DynamicTextureModule :IRegionModule, IDynamicTextureManager
+ {
+ private Dictionary RegisteredScenes = new Dictionary();
+ private Dictionary RenderPlugins= new Dictionary();
+ private Dictionary Updaters = new Dictionary();
+
+ public void Initialise(Scene scene)
+ {
+ if (!RegisteredScenes.ContainsKey(scene.RegionInfo.SimUUID))
+ {
+ RegisteredScenes.Add(scene.RegionInfo.SimUUID, scene);
+ scene.RegisterModuleInterface(this);
+ }
+ }
+
+ public void PostInitialise()
+ {
+
+ }
+
+ public void CloseDown()
+ {
+ }
+
+ public string GetName()
+ {
+ return "DynamicTextureModule";
+ }
+
+ public bool IsSharedModule()
+ {
+ return true;
+ }
+
+ public void RegisterRender(string handleType, IDynamicTextureRender render)
+ {
+ if (!RenderPlugins.ContainsKey(handleType))
+ {
+ RenderPlugins.Add(handleType, render);
+ }
+ }
+
+ public void ReturnData(LLUUID id, byte[] data)
+ {
+ if (Updaters.ContainsKey(id))
+ {
+ DynamicTextureUpdater updater = Updaters[id];
+ if (RegisteredScenes.ContainsKey(updater.SimUUID))
+ {
+ Scene scene = RegisteredScenes[updater.SimUUID];
+ updater.DataReceived(data, scene);
+ }
+ }
+ }
+
+ public LLUUID AddDynamicTextureURL(LLUUID simID, LLUUID primID, string contentType, string url, string extraParams, int updateTimer)
+ {
+ System.Console.WriteLine("dynamic texture being created: " + url + " of type " + contentType);
+ if (this.RenderPlugins.ContainsKey(contentType))
+ {
+ DynamicTextureUpdater updater = new DynamicTextureUpdater();
+ updater.SimUUID = simID;
+ updater.PrimID = primID;
+ updater.ContentType = contentType;
+ updater.Url = url;
+ updater.UpdateTimer = updateTimer;
+ updater.UpdaterID = LLUUID.Random();
+ updater.Params = extraParams;
+
+ if (!this.Updaters.ContainsKey(updater.UpdaterID))
+ {
+ Updaters.Add(updater.UpdaterID, updater);
+ }
+
+ RenderPlugins[contentType].AsyncConvertUrl(updater.UpdaterID, url, extraParams);
+ return updater.UpdaterID;
+ }
+ return LLUUID.Zero;
+ }
+
+ public LLUUID AddDynamicTextureData(LLUUID simID, LLUUID primID, string contentType, string data, string extraParams, int updateTimer)
+ {
+ if (this.RenderPlugins.ContainsKey(contentType))
+ {
+ DynamicTextureUpdater updater = new DynamicTextureUpdater();
+ updater.SimUUID = simID;
+ updater.PrimID = primID;
+ updater.ContentType = contentType;
+ updater.BodyData = data;
+ updater.UpdateTimer = updateTimer;
+ updater.UpdaterID = LLUUID.Random();
+ updater.Params = extraParams;
+
+ if (!this.Updaters.ContainsKey(updater.UpdaterID))
+ {
+ Updaters.Add(updater.UpdaterID, updater);
+ }
+
+ RenderPlugins[contentType].AsyncConvertData(updater.UpdaterID, data, extraParams);
+ return updater.UpdaterID;
+ }
+ return LLUUID.Zero;
+ }
+
+ public class DynamicTextureUpdater
+ {
+ public LLUUID SimUUID;
+ public LLUUID UpdaterID;
+ public string ContentType;
+ public string Url;
+ public string BodyData;
+ public LLUUID PrimID;
+ public int UpdateTimer;
+ public LLUUID LastAssetID;
+ public string Params;
+
+ public DynamicTextureUpdater()
+ {
+ LastAssetID = LLUUID.Zero;
+ UpdateTimer = 0;
+ BodyData = null;
+ }
+
+ public void DataReceived(byte[] data, Scene scene)
+ {
+ //TODO delete the last asset(data), if it was a dynamic texture
+
+ AssetBase asset = new AssetBase();
+ asset.FullID = LLUUID.Random();
+ asset.Data = data;
+ asset.Name = "DynamicImage" + Util.RandomClass.Next(1, 10000);
+ asset.Type = 0;
+ scene.commsManager.AssetCache.AddAsset(asset);
+
+ this.LastAssetID = asset.FullID;
+
+ SceneObjectPart part = scene.GetSceneObjectPart(PrimID);
+ part.Shape.TextureEntry = new LLObject.TextureEntry(asset.FullID).ToBytes();
+ part.ScheduleFullUpdate();
+ }
+ }
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/EmailModule.cs b/OpenSim/Region/Environment/Modules/EmailModule.cs
index 2a90dd3..fff9539 100644
--- a/OpenSim/Region/Environment/Modules/EmailModule.cs
+++ b/OpenSim/Region/Environment/Modules/EmailModule.cs
@@ -1,10 +1,10 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace OpenSim.Region.Environment.Modules
-{
- class EmailModule
- {
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenSim.Region.Environment.Modules
+{
+ class EmailModule
+ {
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/FriendsModule.cs b/OpenSim/Region/Environment/Modules/FriendsModule.cs
index d46039c..411b838 100644
--- a/OpenSim/Region/Environment/Modules/FriendsModule.cs
+++ b/OpenSim/Region/Environment/Modules/FriendsModule.cs
@@ -1,40 +1,40 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Interfaces;
-
-
-namespace OpenSim.Region.Environment.Modules
-{
- public class FriendsModule : IRegionModule
- {
- private Scene m_scene;
-
- public void Initialise(Scene scene)
- {
- m_scene = scene;
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void CloseDown()
- {
- }
-
- public string GetName()
- {
- return "FriendsModule";
- }
-
- public bool IsSharedModule()
- {
- return false;
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Interfaces;
+
+
+namespace OpenSim.Region.Environment.Modules
+{
+ public class FriendsModule : IRegionModule
+ {
+ private Scene m_scene;
+
+ public void Initialise(Scene scene)
+ {
+ m_scene = scene;
+ }
+
+ public void PostInitialise()
+ {
+
+ }
+
+ public void CloseDown()
+ {
+ }
+
+ public string GetName()
+ {
+ return "FriendsModule";
+ }
+
+ public bool IsSharedModule()
+ {
+ return false;
+ }
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/GroupsModule.cs b/OpenSim/Region/Environment/Modules/GroupsModule.cs
index 8e4b409..9ed0e96 100644
--- a/OpenSim/Region/Environment/Modules/GroupsModule.cs
+++ b/OpenSim/Region/Environment/Modules/GroupsModule.cs
@@ -1,40 +1,40 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules
-{
- public class GroupsModule : IRegionModule
- {
- private Scene m_scene;
-
- public void Initialise(Scene scene)
- {
- m_scene = scene;
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void CloseDown()
- {
- }
-
- public string GetName()
- {
- return "GroupsModule";
- }
-
- public bool IsSharedModule()
- {
- return false;
- }
- }
-}
-
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules
+{
+ public class GroupsModule : IRegionModule
+ {
+ private Scene m_scene;
+
+ public void Initialise(Scene scene)
+ {
+ m_scene = scene;
+ }
+
+ public void PostInitialise()
+ {
+
+ }
+
+ public void CloseDown()
+ {
+ }
+
+ public string GetName()
+ {
+ return "GroupsModule";
+ }
+
+ public bool IsSharedModule()
+ {
+ return false;
+ }
+ }
+}
+
diff --git a/OpenSim/Region/Environment/Modules/InstantMessageModule.cs b/OpenSim/Region/Environment/Modules/InstantMessageModule.cs
index acf031b..25c118a 100644
--- a/OpenSim/Region/Environment/Modules/InstantMessageModule.cs
+++ b/OpenSim/Region/Environment/Modules/InstantMessageModule.cs
@@ -1,40 +1,40 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Interfaces;
-
-
-namespace OpenSim.Region.Environment.Modules
-{
- public class InstantMessageModule :IRegionModule
- {
- private Scene m_scene;
-
- public void Initialise(Scene scene)
- {
- m_scene = scene;
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void CloseDown()
- {
- }
-
- public string GetName()
- {
- return "InstantMessageModule";
- }
-
- public bool IsSharedModule()
- {
- return false;
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Interfaces;
+
+
+namespace OpenSim.Region.Environment.Modules
+{
+ public class InstantMessageModule :IRegionModule
+ {
+ private Scene m_scene;
+
+ public void Initialise(Scene scene)
+ {
+ m_scene = scene;
+ }
+
+ public void PostInitialise()
+ {
+
+ }
+
+ public void CloseDown()
+ {
+ }
+
+ public string GetName()
+ {
+ return "InstantMessageModule";
+ }
+
+ public bool IsSharedModule()
+ {
+ return false;
+ }
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/InventoryModule.cs b/OpenSim/Region/Environment/Modules/InventoryModule.cs
index 00b4d8e..bfcb7d7 100644
--- a/OpenSim/Region/Environment/Modules/InventoryModule.cs
+++ b/OpenSim/Region/Environment/Modules/InventoryModule.cs
@@ -1,40 +1,40 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Interfaces;
-
-
-namespace OpenSim.Region.Environment.Modules
-{
- public class InventoryModule :IRegionModule
- {
- private Scene m_scene;
-
- public void Initialise(Scene scene)
- {
- m_scene = scene;
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void CloseDown()
- {
- }
-
- public string GetName()
- {
- return "InventoryModule";
- }
-
- public bool IsSharedModule()
- {
- return false;
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Interfaces;
+
+
+namespace OpenSim.Region.Environment.Modules
+{
+ public class InventoryModule :IRegionModule
+ {
+ private Scene m_scene;
+
+ public void Initialise(Scene scene)
+ {
+ m_scene = scene;
+ }
+
+ public void PostInitialise()
+ {
+
+ }
+
+ public void CloseDown()
+ {
+ }
+
+ public string GetName()
+ {
+ return "InventoryModule";
+ }
+
+ public bool IsSharedModule()
+ {
+ return false;
+ }
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/ScriptsHttpRequests.cs b/OpenSim/Region/Environment/Modules/ScriptsHttpRequests.cs
index 11af718..e47cc9e 100644
--- a/OpenSim/Region/Environment/Modules/ScriptsHttpRequests.cs
+++ b/OpenSim/Region/Environment/Modules/ScriptsHttpRequests.cs
@@ -1,10 +1,10 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace OpenSim.Region.Environment.Modules
-{
- class ScriptsHttpRequests
- {
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenSim.Region.Environment.Modules
+{
+ class ScriptsHttpRequests
+ {
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/TeleportModule.cs b/OpenSim/Region/Environment/Modules/TeleportModule.cs
index 08fc202..1c01b27 100644
--- a/OpenSim/Region/Environment/Modules/TeleportModule.cs
+++ b/OpenSim/Region/Environment/Modules/TeleportModule.cs
@@ -1,10 +1,10 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace OpenSim.Region.Environment.Modules
-{
- class TeleportModule
- {
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenSim.Region.Environment.Modules
+{
+ class TeleportModule
+ {
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs b/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs
index 7d31644..59c0839 100644
--- a/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs
+++ b/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs
@@ -1,54 +1,54 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules
-{
- public class TextureDownloadModule :IRegionModule
- {
- private Scene m_scene;
-
- public TextureDownloadModule()
- {
-
- }
-
- public void Initialise(Scene scene)
- {
- m_scene = scene;
- m_scene.EventManager.OnNewClient += NewClient;
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void CloseDown()
- {
- }
-
- public string GetName()
- {
- return "TextureDownloadModule";
- }
-
- public bool IsSharedModule()
- {
- return false;
- }
-
- public void NewClient(IClientAPI client)
- {
- }
-
- public void TextureAssetCallback(LLUUID texture, byte[] data)
- {
-
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules
+{
+ public class TextureDownloadModule :IRegionModule
+ {
+ private Scene m_scene;
+
+ public TextureDownloadModule()
+ {
+
+ }
+
+ public void Initialise(Scene scene)
+ {
+ m_scene = scene;
+ m_scene.EventManager.OnNewClient += NewClient;
+ }
+
+ public void PostInitialise()
+ {
+
+ }
+
+ public void CloseDown()
+ {
+ }
+
+ public string GetName()
+ {
+ return "TextureDownloadModule";
+ }
+
+ public bool IsSharedModule()
+ {
+ return false;
+ }
+
+ public void NewClient(IClientAPI client)
+ {
+ }
+
+ public void TextureAssetCallback(LLUUID texture, byte[] data)
+ {
+
+ }
+ }
+}
diff --git a/OpenSim/Region/Environment/Modules/XferModule.cs b/OpenSim/Region/Environment/Modules/XferModule.cs
index 44b4d7a..216d10a 100644
--- a/OpenSim/Region/Environment/Modules/XferModule.cs
+++ b/OpenSim/Region/Environment/Modules/XferModule.cs
@@ -1,180 +1,180 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Utilities;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules
-{
- public class XferModule : IRegionModule, IXfer
- {
- public Dictionary NewFiles = new Dictionary();
- public Dictionary Transfers = new Dictionary();
-
- private Scene m_scene;
-
- public XferModule()
- {
-
- }
-
- public void Initialise(Scene scene)
- {
- m_scene = scene;
- m_scene.EventManager.OnNewClient += NewClient;
-
- m_scene.RegisterModuleInterface(this);
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void CloseDown()
- {
-
- }
-
- public string GetName()
- {
- return "XferModule";
- }
-
- public bool IsSharedModule()
- {
- return false;
- }
-
- public void NewClient(IClientAPI client)
- {
- client.OnRequestXfer += RequestXfer;
- client.OnConfirmXfer += AckPacket;
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- public void RequestXfer(IClientAPI remoteClient, ulong xferID, string fileName)
- {
- lock (NewFiles)
- {
- if (NewFiles.ContainsKey(fileName))
- {
- if (!Transfers.ContainsKey(xferID))
- {
- byte[] fileData = NewFiles[fileName];
- XferDownLoad transaction = new XferDownLoad(fileName, fileData, xferID, remoteClient);
- Transfers.Add(xferID, transaction);
- NewFiles.Remove(fileName);
- transaction.StartSend();
- }
- }
- }
- }
-
- public void AckPacket(IClientAPI remoteClient, ulong xferID, uint packet)
- {
- if (this.Transfers.ContainsKey(xferID))
- {
- Transfers[xferID].AckPacket(packet);
- }
- }
-
- public bool AddNewFile(string fileName, byte[] data)
- {
- lock (NewFiles)
- {
- if (NewFiles.ContainsKey(fileName))
- {
- NewFiles[fileName] = data;
- }
- else
- {
- NewFiles.Add(fileName, data);
- }
- }
- return true;
- }
-
-
- public class XferDownLoad
- {
- public byte[] Data = new byte[0];
- public string FileName = "";
- public ulong XferID = 0;
- public int DataPointer = 0;
- public uint Packet = 0;
- public IClientAPI Client;
- public uint Serial = 1;
- private bool complete = false;
-
- public XferDownLoad(string fileName, byte[] data, ulong xferID, IClientAPI client)
- {
- FileName = fileName;
- Data = data;
- XferID = xferID;
- Client = client;
- }
-
- public XferDownLoad()
- {
-
- }
-
- public void StartSend()
- {
- if (Data.Length < 1000)
- {
- // for now (testing ) we only support files under 1000 bytes
- byte[] transferData = new byte[Data.Length + 4];
- Array.Copy(Helpers.IntToBytes(Data.Length), 0, transferData, 0, 4);
- Array.Copy(Data, 0, transferData, 4, Data.Length);
- Client.SendXferPacket(XferID, 0 + 0x80000000, transferData);
- complete = true;
- }
- else
- {
- byte[] transferData = new byte[1000 +4];
- Array.Copy(Helpers.IntToBytes(Data.Length), 0, transferData, 0, 4);
- Array.Copy(Data, 0, transferData, 4, 1000);
- Client.SendXferPacket(XferID, 0 , transferData);
- Packet++;
- DataPointer = 1000;
- }
- }
-
- public void AckPacket(uint packet)
- {
- if (!complete)
- {
- if ((Data.Length - DataPointer) > 1000)
- {
- byte[] transferData = new byte[1000];
- Array.Copy(Data, DataPointer, transferData, 0, 1000);
- Client.SendXferPacket(XferID, Packet, transferData);
- Packet++;
- DataPointer += 1000;
- }
- else
- {
- byte[] transferData = new byte[Data.Length - DataPointer];
- Array.Copy(Data, DataPointer, transferData, 0, Data.Length - DataPointer);
- uint endPacket = Packet |= (uint)0x80000000;
- Client.SendXferPacket(XferID, endPacket, transferData);
- Packet++;
- DataPointer += (Data.Length - DataPointer);
- complete = true;
- }
- }
- }
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Utilities;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules
+{
+ public class XferModule : IRegionModule, IXfer
+ {
+ public Dictionary NewFiles = new Dictionary();
+ public Dictionary Transfers = new Dictionary();
+
+ private Scene m_scene;
+
+ public XferModule()
+ {
+
+ }
+
+ public void Initialise(Scene scene)
+ {
+ m_scene = scene;
+ m_scene.EventManager.OnNewClient += NewClient;
+
+ m_scene.RegisterModuleInterface(this);
+ }
+
+ public void PostInitialise()
+ {
+
+ }
+
+ public void CloseDown()
+ {
+
+ }
+
+ public string GetName()
+ {
+ return "XferModule";
+ }
+
+ public bool IsSharedModule()
+ {
+ return false;
+ }
+
+ public void NewClient(IClientAPI client)
+ {
+ client.OnRequestXfer += RequestXfer;
+ client.OnConfirmXfer += AckPacket;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void RequestXfer(IClientAPI remoteClient, ulong xferID, string fileName)
+ {
+ lock (NewFiles)
+ {
+ if (NewFiles.ContainsKey(fileName))
+ {
+ if (!Transfers.ContainsKey(xferID))
+ {
+ byte[] fileData = NewFiles[fileName];
+ XferDownLoad transaction = new XferDownLoad(fileName, fileData, xferID, remoteClient);
+ Transfers.Add(xferID, transaction);
+ NewFiles.Remove(fileName);
+ transaction.StartSend();
+ }
+ }
+ }
+ }
+
+ public void AckPacket(IClientAPI remoteClient, ulong xferID, uint packet)
+ {
+ if (this.Transfers.ContainsKey(xferID))
+ {
+ Transfers[xferID].AckPacket(packet);
+ }
+ }
+
+ public bool AddNewFile(string fileName, byte[] data)
+ {
+ lock (NewFiles)
+ {
+ if (NewFiles.ContainsKey(fileName))
+ {
+ NewFiles[fileName] = data;
+ }
+ else
+ {
+ NewFiles.Add(fileName, data);
+ }
+ }
+ return true;
+ }
+
+
+ public class XferDownLoad
+ {
+ public byte[] Data = new byte[0];
+ public string FileName = "";
+ public ulong XferID = 0;
+ public int DataPointer = 0;
+ public uint Packet = 0;
+ public IClientAPI Client;
+ public uint Serial = 1;
+ private bool complete = false;
+
+ public XferDownLoad(string fileName, byte[] data, ulong xferID, IClientAPI client)
+ {
+ FileName = fileName;
+ Data = data;
+ XferID = xferID;
+ Client = client;
+ }
+
+ public XferDownLoad()
+ {
+
+ }
+
+ public void StartSend()
+ {
+ if (Data.Length < 1000)
+ {
+ // for now (testing ) we only support files under 1000 bytes
+ byte[] transferData = new byte[Data.Length + 4];
+ Array.Copy(Helpers.IntToBytes(Data.Length), 0, transferData, 0, 4);
+ Array.Copy(Data, 0, transferData, 4, Data.Length);
+ Client.SendXferPacket(XferID, 0 + 0x80000000, transferData);
+ complete = true;
+ }
+ else
+ {
+ byte[] transferData = new byte[1000 +4];
+ Array.Copy(Helpers.IntToBytes(Data.Length), 0, transferData, 0, 4);
+ Array.Copy(Data, 0, transferData, 4, 1000);
+ Client.SendXferPacket(XferID, 0 , transferData);
+ Packet++;
+ DataPointer = 1000;
+ }
+ }
+
+ public void AckPacket(uint packet)
+ {
+ if (!complete)
+ {
+ if ((Data.Length - DataPointer) > 1000)
+ {
+ byte[] transferData = new byte[1000];
+ Array.Copy(Data, DataPointer, transferData, 0, 1000);
+ Client.SendXferPacket(XferID, Packet, transferData);
+ Packet++;
+ DataPointer += 1000;
+ }
+ else
+ {
+ byte[] transferData = new byte[Data.Length - DataPointer];
+ Array.Copy(Data, DataPointer, transferData, 0, Data.Length - DataPointer);
+ uint endPacket = Packet |= (uint)0x80000000;
+ Client.SendXferPacket(XferID, endPacket, transferData);
+ Packet++;
+ DataPointer += (Data.Length - DataPointer);
+ complete = true;
+ }
+ }
+ }
+ }
+ }
+}
--
cgit v1.1