From 0e31eb831409c7f2f9f1ba88dec13dfef4dd3ac1 Mon Sep 17 00:00:00 2001
From: Jeff Ames
Date: Sun, 4 May 2008 21:59:29 +0000
Subject: Update svn properties.
---
.../Framework/InterfaceCommander/Commander.cs | 624 ++++++++---------
.../InterfaceCommander/CommanderTestModule.cs | 176 ++---
.../Modules/World/Estate/EstateManagementModule.cs | 772 ++++++++++-----------
.../Modules/World/WorldMap/MapImageModule.cs | 332 ++++-----
4 files changed, 952 insertions(+), 952 deletions(-)
(limited to 'OpenSim/Region/Environment/Modules')
diff --git a/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/Commander.cs b/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/Commander.cs
index f9896bd..84487e8 100644
--- a/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/Commander.cs
+++ b/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/Commander.cs
@@ -1,313 +1,313 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Text;
-using log4net;
-using OpenSim.Framework;
-using OpenSim.Region.Environment.Interfaces;
-
-namespace OpenSim.Region.Environment.Modules.Framework.InterfaceCommander
-{
- ///
- /// A single function call encapsulated in a class which enforces arguments when passing around as Object[]'s.
- /// Used for console commands and script API generation
- ///
- public class Command : ICommand
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private List m_args = new List();
-
- private Action m_command;
- private string m_help;
- private string m_name;
-
- public Command(string name, Action command, string help)
- {
- m_name = name;
- m_command = command;
- m_help = help;
- }
-
- #region ICommand Members
-
- public void AddArgument(string name, string helptext, string type)
- {
- m_args.Add(new CommandArgument(name, helptext, type));
- }
-
- public string Name
- {
- get { return m_name; }
- }
-
- public string Help
- {
- get { return m_help; }
- }
-
- public Dictionary Arguments
- {
- get
- {
- Dictionary tmp = new Dictionary();
- foreach (CommandArgument arg in m_args)
- {
- tmp.Add(arg.Name, arg.ArgumentType);
- }
- return tmp;
- }
- }
-
- public void ShowConsoleHelp()
- {
- m_log.Info("== " + Name + " ==");
- m_log.Info(m_help);
- m_log.Info("= Parameters =");
- foreach (CommandArgument arg in m_args)
- {
- m_log.Info("* " + arg.Name + " (" + arg.ArgumentType + ")");
- m_log.Info("\t" + arg.HelpText);
- }
- }
-
- public void Run(Object[] args)
- {
- Object[] cleanArgs = new Object[m_args.Count];
-
- if (args.Length < cleanArgs.Length)
- {
- m_log.Error("Missing " + (cleanArgs.Length - args.Length) + " argument(s)");
- ShowConsoleHelp();
- return;
- }
- if (args.Length > cleanArgs.Length)
- {
- m_log.Error("Too many arguments for this command. Type ' help' for help.");
- return;
- }
-
- int i = 0;
- foreach (Object arg in args)
- {
- if (string.IsNullOrEmpty(arg.ToString()))
- {
- m_log.Error("Empty arguments are not allowed");
- return;
- }
- try
- {
- switch (m_args[i].ArgumentType)
- {
- case "String":
- m_args[i].ArgumentValue = arg.ToString();
- break;
- case "Integer":
- m_args[i].ArgumentValue = Int32.Parse(arg.ToString());
- break;
- case "Double":
- m_args[i].ArgumentValue = Double.Parse(arg.ToString());
- break;
- case "Boolean":
- m_args[i].ArgumentValue = Boolean.Parse(arg.ToString());
- break;
- default:
- m_log.Error("Unknown desired type for argument " + m_args[i].Name + " on command " + m_name);
- break;
- }
- }
- catch (FormatException)
- {
- m_log.Error("Argument number " + (i + 1) +
- " (" + m_args[i].Name + ") must be a valid " +
- m_args[i].ArgumentType.ToLower() + ".");
- }
- cleanArgs[i] = m_args[i].ArgumentValue;
-
- i++;
- }
-
- m_command.Invoke(cleanArgs);
- }
-
- #endregion
- }
-
- ///
- /// A single command argument, contains name, type and at runtime, value.
- ///
- public class CommandArgument
- {
- private string m_help;
- private string m_name;
- private string m_type;
- private Object m_val;
-
- public CommandArgument(string name, string help, string type)
- {
- m_name = name;
- m_help = help;
- m_type = type;
- }
-
- public string Name
- {
- get { return m_name; }
- }
-
- public string HelpText
- {
- get { return m_help; }
- }
-
- public string ArgumentType
- {
- get { return m_type; }
- }
-
- public Object ArgumentValue
- {
- get { return m_val; }
- set { m_val = value; }
- }
- }
-
- ///
- /// A class to enable modules to register console and script commands, which enforces typing and valid input.
- ///
- public class Commander : ICommander
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private Dictionary m_commands = new Dictionary();
- private string m_name;
-
- public Commander(string name)
- {
- m_name = name;
- }
-
- public Dictionary Commands
- {
- get { return m_commands; }
- }
-
- #region ICommander Members
-
- public void RegisterCommand(string commandName, ICommand command)
- {
- m_commands[commandName] = command;
- }
-
- ///
- /// Generates a runtime C# class which can be compiled and inserted via reflection to enable modules to register new script commands
- ///
- /// Returns C# source code to create a binding
- public string GenerateRuntimeAPI()
- {
- string classSrc = "\n\tpublic class " + m_name + " {\n";
- foreach (ICommand com in m_commands.Values)
- {
- classSrc += "\tpublic void " + EscapeRuntimeAPICommand(com.Name) + "( ";
- foreach (KeyValuePair arg in com.Arguments)
- {
- classSrc += arg.Value + " " + Util.Md5Hash(arg.Key) + ",";
- }
- classSrc = classSrc.Remove(classSrc.Length - 1); // Delete the last comma
- classSrc += " )\n\t{\n";
- classSrc += "\t\tObject[] args = new Object[" + com.Arguments.Count.ToString() + "];\n";
- int i = 0;
- foreach (KeyValuePair arg in com.Arguments)
- {
- classSrc += "\t\targs[" + i.ToString() + "] = " + Util.Md5Hash(arg.Key) + " " + ";\n";
- i++;
- }
- classSrc += "\t\tGetCommander(\"" + m_name + "\").Run(\"" + com.Name + "\", args);\n";
- classSrc += "\t}\n";
- }
- classSrc += "}\n";
-
- return classSrc;
- }
-
- ///
- /// Runs a specified function with attached arguments
- /// *** DO NOT CALL DIRECTLY. ***
- /// Call ProcessConsoleCommand instead if handling human input.
- ///
- /// The function name to call
- /// The function parameters
- public void Run(string function, object[] args)
- {
- m_commands[function].Run(args);
- }
-
- public void ProcessConsoleCommand(string function, string[] args)
- {
- if (m_commands.ContainsKey(function))
- {
- if (args.Length > 0 && args[0] == "help")
- {
- m_commands[function].ShowConsoleHelp();
- }
- else
- {
- m_commands[function].Run(args);
- }
- }
- else
- {
- if (function != "help")
- m_log.Error("Invalid command - No such command exists");
- if (function == "api")
- m_log.Info(GenerateRuntimeAPI());
- ShowConsoleHelp();
- }
- }
-
- #endregion
-
- private void ShowConsoleHelp()
- {
- m_log.Info("===" + m_name + "===");
- foreach (ICommand com in m_commands.Values)
- {
- m_log.Info("* " + com.Name + " - " + com.Help);
- }
- }
-
- private string EscapeRuntimeAPICommand(string command)
- {
- command = command.Replace('-', '_');
- StringBuilder tmp = new StringBuilder(command);
- tmp[0] = tmp[0].ToString().ToUpper().ToCharArray()[0];
-
- return tmp.ToString();
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Text;
+using log4net;
+using OpenSim.Framework;
+using OpenSim.Region.Environment.Interfaces;
+
+namespace OpenSim.Region.Environment.Modules.Framework.InterfaceCommander
+{
+ ///
+ /// A single function call encapsulated in a class which enforces arguments when passing around as Object[]'s.
+ /// Used for console commands and script API generation
+ ///
+ public class Command : ICommand
+ {
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ private List m_args = new List();
+
+ private Action m_command;
+ private string m_help;
+ private string m_name;
+
+ public Command(string name, Action command, string help)
+ {
+ m_name = name;
+ m_command = command;
+ m_help = help;
+ }
+
+ #region ICommand Members
+
+ public void AddArgument(string name, string helptext, string type)
+ {
+ m_args.Add(new CommandArgument(name, helptext, type));
+ }
+
+ public string Name
+ {
+ get { return m_name; }
+ }
+
+ public string Help
+ {
+ get { return m_help; }
+ }
+
+ public Dictionary Arguments
+ {
+ get
+ {
+ Dictionary tmp = new Dictionary();
+ foreach (CommandArgument arg in m_args)
+ {
+ tmp.Add(arg.Name, arg.ArgumentType);
+ }
+ return tmp;
+ }
+ }
+
+ public void ShowConsoleHelp()
+ {
+ m_log.Info("== " + Name + " ==");
+ m_log.Info(m_help);
+ m_log.Info("= Parameters =");
+ foreach (CommandArgument arg in m_args)
+ {
+ m_log.Info("* " + arg.Name + " (" + arg.ArgumentType + ")");
+ m_log.Info("\t" + arg.HelpText);
+ }
+ }
+
+ public void Run(Object[] args)
+ {
+ Object[] cleanArgs = new Object[m_args.Count];
+
+ if (args.Length < cleanArgs.Length)
+ {
+ m_log.Error("Missing " + (cleanArgs.Length - args.Length) + " argument(s)");
+ ShowConsoleHelp();
+ return;
+ }
+ if (args.Length > cleanArgs.Length)
+ {
+ m_log.Error("Too many arguments for this command. Type ' help' for help.");
+ return;
+ }
+
+ int i = 0;
+ foreach (Object arg in args)
+ {
+ if (string.IsNullOrEmpty(arg.ToString()))
+ {
+ m_log.Error("Empty arguments are not allowed");
+ return;
+ }
+ try
+ {
+ switch (m_args[i].ArgumentType)
+ {
+ case "String":
+ m_args[i].ArgumentValue = arg.ToString();
+ break;
+ case "Integer":
+ m_args[i].ArgumentValue = Int32.Parse(arg.ToString());
+ break;
+ case "Double":
+ m_args[i].ArgumentValue = Double.Parse(arg.ToString());
+ break;
+ case "Boolean":
+ m_args[i].ArgumentValue = Boolean.Parse(arg.ToString());
+ break;
+ default:
+ m_log.Error("Unknown desired type for argument " + m_args[i].Name + " on command " + m_name);
+ break;
+ }
+ }
+ catch (FormatException)
+ {
+ m_log.Error("Argument number " + (i + 1) +
+ " (" + m_args[i].Name + ") must be a valid " +
+ m_args[i].ArgumentType.ToLower() + ".");
+ }
+ cleanArgs[i] = m_args[i].ArgumentValue;
+
+ i++;
+ }
+
+ m_command.Invoke(cleanArgs);
+ }
+
+ #endregion
+ }
+
+ ///
+ /// A single command argument, contains name, type and at runtime, value.
+ ///
+ public class CommandArgument
+ {
+ private string m_help;
+ private string m_name;
+ private string m_type;
+ private Object m_val;
+
+ public CommandArgument(string name, string help, string type)
+ {
+ m_name = name;
+ m_help = help;
+ m_type = type;
+ }
+
+ public string Name
+ {
+ get { return m_name; }
+ }
+
+ public string HelpText
+ {
+ get { return m_help; }
+ }
+
+ public string ArgumentType
+ {
+ get { return m_type; }
+ }
+
+ public Object ArgumentValue
+ {
+ get { return m_val; }
+ set { m_val = value; }
+ }
+ }
+
+ ///
+ /// A class to enable modules to register console and script commands, which enforces typing and valid input.
+ ///
+ public class Commander : ICommander
+ {
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ private Dictionary m_commands = new Dictionary();
+ private string m_name;
+
+ public Commander(string name)
+ {
+ m_name = name;
+ }
+
+ public Dictionary Commands
+ {
+ get { return m_commands; }
+ }
+
+ #region ICommander Members
+
+ public void RegisterCommand(string commandName, ICommand command)
+ {
+ m_commands[commandName] = command;
+ }
+
+ ///
+ /// Generates a runtime C# class which can be compiled and inserted via reflection to enable modules to register new script commands
+ ///
+ /// Returns C# source code to create a binding
+ public string GenerateRuntimeAPI()
+ {
+ string classSrc = "\n\tpublic class " + m_name + " {\n";
+ foreach (ICommand com in m_commands.Values)
+ {
+ classSrc += "\tpublic void " + EscapeRuntimeAPICommand(com.Name) + "( ";
+ foreach (KeyValuePair arg in com.Arguments)
+ {
+ classSrc += arg.Value + " " + Util.Md5Hash(arg.Key) + ",";
+ }
+ classSrc = classSrc.Remove(classSrc.Length - 1); // Delete the last comma
+ classSrc += " )\n\t{\n";
+ classSrc += "\t\tObject[] args = new Object[" + com.Arguments.Count.ToString() + "];\n";
+ int i = 0;
+ foreach (KeyValuePair arg in com.Arguments)
+ {
+ classSrc += "\t\targs[" + i.ToString() + "] = " + Util.Md5Hash(arg.Key) + " " + ";\n";
+ i++;
+ }
+ classSrc += "\t\tGetCommander(\"" + m_name + "\").Run(\"" + com.Name + "\", args);\n";
+ classSrc += "\t}\n";
+ }
+ classSrc += "}\n";
+
+ return classSrc;
+ }
+
+ ///
+ /// Runs a specified function with attached arguments
+ /// *** DO NOT CALL DIRECTLY. ***
+ /// Call ProcessConsoleCommand instead if handling human input.
+ ///
+ /// The function name to call
+ /// The function parameters
+ public void Run(string function, object[] args)
+ {
+ m_commands[function].Run(args);
+ }
+
+ public void ProcessConsoleCommand(string function, string[] args)
+ {
+ if (m_commands.ContainsKey(function))
+ {
+ if (args.Length > 0 && args[0] == "help")
+ {
+ m_commands[function].ShowConsoleHelp();
+ }
+ else
+ {
+ m_commands[function].Run(args);
+ }
+ }
+ else
+ {
+ if (function != "help")
+ m_log.Error("Invalid command - No such command exists");
+ if (function == "api")
+ m_log.Info(GenerateRuntimeAPI());
+ ShowConsoleHelp();
+ }
+ }
+
+ #endregion
+
+ private void ShowConsoleHelp()
+ {
+ m_log.Info("===" + m_name + "===");
+ foreach (ICommand com in m_commands.Values)
+ {
+ m_log.Info("* " + com.Name + " - " + com.Help);
+ }
+ }
+
+ private string EscapeRuntimeAPICommand(string command)
+ {
+ command = command.Replace('-', '_');
+ StringBuilder tmp = new StringBuilder(command);
+ tmp[0] = tmp[0].ToString().ToUpper().ToCharArray()[0];
+
+ return tmp.ToString();
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/CommanderTestModule.cs b/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/CommanderTestModule.cs
index fffb19e..8d1371c 100644
--- a/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/CommanderTestModule.cs
+++ b/OpenSim/Region/Environment/Modules/Framework/InterfaceCommander/CommanderTestModule.cs
@@ -1,89 +1,89 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using Nini.Config;
-using OpenSim.Region.Environment.Interfaces;
-using OpenSim.Region.Environment.Modules.Framework.InterfaceCommander;
-using OpenSim.Region.Environment.Scenes;
-
-namespace OpenSim.Region.Environment.Modules.Framework.InterfaceCommander
-{
- public class CommanderTestModule : IRegionModule, ICommandableModule
- {
- private readonly Commander m_commander = new Commander("CommanderTest");
- private Scene m_scene;
-
- #region ICommandableModule Members
-
- public ICommander CommandInterface
- {
- get { throw new NotImplementedException(); }
- }
-
- #endregion
-
- #region IRegionModule Members
-
- public void Initialise(Scene scene, IConfigSource source)
- {
- m_scene = scene;
- }
-
- public void PostInitialise()
- {
- Command testCommand = new Command("hello", InterfaceHelloWorld, "Says a simple debugging test string");
- testCommand.AddArgument("world", "Write world here", "string");
-
- m_commander.RegisterCommand("hello", testCommand);
-
- // Register me
- m_scene.RegisterModuleCommander("commandertest", m_commander);
- }
-
- public void Close()
- {
- }
-
- public string Name
- {
- get { return "CommanderTestModule"; }
- }
-
- public bool IsSharedModule
- {
- get { return false; }
- }
-
- #endregion
-
- private void InterfaceHelloWorld(Object[] args)
- {
- Console.WriteLine("Hello World");
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using Nini.Config;
+using OpenSim.Region.Environment.Interfaces;
+using OpenSim.Region.Environment.Modules.Framework.InterfaceCommander;
+using OpenSim.Region.Environment.Scenes;
+
+namespace OpenSim.Region.Environment.Modules.Framework.InterfaceCommander
+{
+ public class CommanderTestModule : IRegionModule, ICommandableModule
+ {
+ private readonly Commander m_commander = new Commander("CommanderTest");
+ private Scene m_scene;
+
+ #region ICommandableModule Members
+
+ public ICommander CommandInterface
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ #endregion
+
+ #region IRegionModule Members
+
+ public void Initialise(Scene scene, IConfigSource source)
+ {
+ m_scene = scene;
+ }
+
+ public void PostInitialise()
+ {
+ Command testCommand = new Command("hello", InterfaceHelloWorld, "Says a simple debugging test string");
+ testCommand.AddArgument("world", "Write world here", "string");
+
+ m_commander.RegisterCommand("hello", testCommand);
+
+ // Register me
+ m_scene.RegisterModuleCommander("commandertest", m_commander);
+ }
+
+ public void Close()
+ {
+ }
+
+ public string Name
+ {
+ get { return "CommanderTestModule"; }
+ }
+
+ public bool IsSharedModule
+ {
+ get { return false; }
+ }
+
+ #endregion
+
+ private void InterfaceHelloWorld(Object[] args)
+ {
+ Console.WriteLine("Hello World");
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
index 3e466dc..403ab5b 100644
--- a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
@@ -1,387 +1,387 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Collections.Generic;
-using System.Reflection;
-using libsecondlife;
-using log4net;
-using Nini.Config;
-using OpenSim.Framework;
-using OpenSim.Region.Environment.Interfaces;
-using OpenSim.Region.Environment.Scenes;
-
-namespace OpenSim.Region.Environment.Modules.World.Estate
-{
- public class EstateManagementModule : IRegionModule
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private Scene m_scene;
-
- #region Packet Data Responders
-
- private static void sendDetailedEstateData(IClientAPI remote_client, LLUUID invoice)
- {
- remote_client.sendDetailedEstateData(invoice);
- remote_client.sendEstateManagersList(invoice);
- }
-
- private void estateSetRegionInfoHandler(bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor,
- int matureLevel, bool restrictPushObject, bool allowParcelChanges)
- {
- m_scene.RegionInfo.EstateSettings.regionFlags = Simulator.RegionFlags.None;
-
- if (blockTerraform)
- {
- m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
- Simulator.RegionFlags.BlockTerraform;
- }
-
- if (noFly)
- {
- m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
- Simulator.RegionFlags.NoFly;
- }
-
- if (allowDamage)
- {
- m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
- Simulator.RegionFlags.AllowDamage;
- }
-
- if (blockLandResell)
- {
- m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
- Simulator.RegionFlags.BlockLandResell;
- }
-
- m_scene.RegionInfo.EstateSettings.maxAgents = (byte) maxAgents;
-
- m_scene.RegionInfo.EstateSettings.objectBonusFactor = objectBonusFactor;
-
- m_scene.RegionInfo.EstateSettings.simAccess = (Simulator.SimAccess) matureLevel;
-
-
- if (restrictPushObject)
- {
- m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
- Simulator.RegionFlags.RestrictPushObject;
- }
-
- if (allowParcelChanges)
- {
- m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
- Simulator.RegionFlags.AllowParcelChanges;
- }
-
- sendRegionInfoPacketToAll();
- }
-
- public void setEstateTerrainBaseTexture(IClientAPI remoteClient, int corner, LLUUID texture)
- {
- switch (corner)
- {
- case 0:
- m_scene.RegionInfo.EstateSettings.terrainBase0 = texture;
- break;
- case 1:
- m_scene.RegionInfo.EstateSettings.terrainBase1 = texture;
- break;
- case 2:
- m_scene.RegionInfo.EstateSettings.terrainBase2 = texture;
- break;
- case 3:
- m_scene.RegionInfo.EstateSettings.terrainBase3 = texture;
- break;
- }
- }
-
- public void setEstateTerrainDetailTexture(IClientAPI client, int corner, LLUUID textureUUID)
- {
- switch (corner)
- {
- case 0:
- m_scene.RegionInfo.EstateSettings.terrainDetail0 = textureUUID;
- break;
- case 1:
- m_scene.RegionInfo.EstateSettings.terrainDetail1 = textureUUID;
- break;
- case 2:
- m_scene.RegionInfo.EstateSettings.terrainDetail2 = textureUUID;
- break;
- case 3:
- m_scene.RegionInfo.EstateSettings.terrainDetail3 = textureUUID;
- break;
- }
- }
-
- public void setEstateTerrainTextureHeights(IClientAPI client, int corner, float lowValue, float highValue)
- {
- switch (corner)
- {
- case 0:
- m_scene.RegionInfo.EstateSettings.terrainStartHeight0 = lowValue;
- m_scene.RegionInfo.EstateSettings.terrainHeightRange0 = highValue;
- break;
- case 1:
- m_scene.RegionInfo.EstateSettings.terrainStartHeight1 = lowValue;
- m_scene.RegionInfo.EstateSettings.terrainHeightRange1 = highValue;
- break;
- case 2:
- m_scene.RegionInfo.EstateSettings.terrainStartHeight2 = lowValue;
- m_scene.RegionInfo.EstateSettings.terrainHeightRange2 = highValue;
- break;
- case 3:
- m_scene.RegionInfo.EstateSettings.terrainStartHeight3 = lowValue;
- m_scene.RegionInfo.EstateSettings.terrainHeightRange3 = highValue;
- break;
- }
- }
-
- private void handleCommitEstateTerrainTextureRequest(IClientAPI remoteClient)
- {
- sendRegionHandshakeToAll();
- }
-
- public void setRegionTerrainSettings(float WaterHeight, float TerrainRaiseLimit, float TerrainLowerLimit,
- bool UseFixedSun, float SunHour)
- {
- // Water Height
- m_scene.RegionInfo.EstateSettings.waterHeight = WaterHeight;
-
- // Terraforming limits
- m_scene.RegionInfo.EstateSettings.terrainRaiseLimit = TerrainRaiseLimit;
- m_scene.RegionInfo.EstateSettings.terrainLowerLimit = TerrainLowerLimit;
-
- // Time of day / fixed sun
- m_scene.RegionInfo.EstateSettings.useFixedSun = UseFixedSun;
- m_scene.RegionInfo.EstateSettings.sunHour = SunHour;
-
- sendRegionInfoPacketToAll();
- }
-
- private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds)
- {
- m_scene.Restart(timeInSeconds);
- }
-
- private void handleChangeEstateCovenantRequest(IClientAPI remoteClient, LLUUID estateCovenantID)
- {
- m_scene.RegionInfo.CovenantID = estateCovenantID;
- m_scene.RegionInfo.SaveEstatecovenantUUID(estateCovenantID);
- }
-
- private void handleEstateAccessDeltaRequest(IClientAPI remote_client, LLUUID invoice, int estateAccessType, LLUUID user)
- {
- // EstateAccessDelta handles Estate Managers, Sim Access, Sim Banlist, allowed Groups.. etc.
-
- switch (estateAccessType)
- {
- case 256:
-
- // This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml
- // So make sure you really trust your region owners. because they can add other estate manaagers to your other estates
- if (remote_client.AgentId == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.PermissionsMngr.BypassPermissions)
- {
- m_scene.RegionInfo.EstateSettings.AddEstateManager(user);
- remote_client.sendEstateManagersList(invoice);
- }
- else
- {
- remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
- }
-
- break;
- case 512:
- // This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml
- // So make sure you really trust your region owners. because they can add other estate manaagers to your other estates
- if (remote_client.AgentId == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.PermissionsMngr.BypassPermissions)
- {
- m_scene.RegionInfo.EstateSettings.RemoveEstateManager(user);
- remote_client.sendEstateManagersList(invoice);
- }
- else
- {
- remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
- }
- break;
-
- default:
-
- m_log.Error("EstateOwnerMessage: Unknown EstateAccessType requested in estateAccessDelta");
- break;
- }
- }
-
- private void SendSimulatorBlueBoxMessage(IClientAPI remote_client, LLUUID invoice, LLUUID senderID, LLUUID sessionID, string senderName, string message)
- {
- m_scene.SendRegionMessageFromEstateTools(senderID, sessionID, senderName, message);
- }
-
- private void SendEstateBlueBoxMessage(IClientAPI remote_client, LLUUID invoice, LLUUID senderID, LLUUID sessionID, string senderName, string message)
- {
- m_scene.SendEstateMessageFromEstateTools(senderID, sessionID, senderName, message);
- }
-
- private void handleEstateDebugRegionRequest(IClientAPI remote_client, LLUUID invoice, LLUUID senderID, bool scripted, bool collisionEvents, bool physics)
- {
- if (physics)
- {
- m_scene.RegionInfo.EstateSettings.regionFlags |= Simulator.RegionFlags.SkipPhysics;
- }
- else
- {
- m_scene.RegionInfo.EstateSettings.regionFlags &= ~Simulator.RegionFlags.SkipPhysics;
- }
-
- if (scripted)
- {
- m_scene.RegionInfo.EstateSettings.regionFlags |= Simulator.RegionFlags.SkipScripts;
- }
- else
- {
- m_scene.RegionInfo.EstateSettings.regionFlags &= ~Simulator.RegionFlags.SkipScripts;
- }
-
-
- m_scene.SetSceneCoreDebug(scripted, collisionEvents, physics);
- }
-
- private void handleEstateTeleportOneUserHomeRequest(IClientAPI remover_client, LLUUID invoice, LLUUID senderID, LLUUID prey)
- {
- if (prey != LLUUID.Zero)
- {
- ScenePresence s = m_scene.GetScenePresence(prey);
- if (s != null)
- {
- m_scene.TeleportClientHome(prey, s.ControllingClient);
- }
- }
- }
-
- private static void HandleRegionInfoRequest(IClientAPI remote_client)
- {
- remote_client.sendRegionInfoToEstateMenu();
- }
-
- private static void HandleEstateCovenantRequest(IClientAPI remote_client)
- {
- remote_client.sendEstateCovenantInformation();
- }
-
- #endregion
-
- #region Outgoing Packets
-
- public void sendRegionInfoPacketToAll()
- {
- List avatars = m_scene.GetAvatars();
-
- for (int i = 0; i < avatars.Count; i++)
- {
- avatars[i].ControllingClient.sendRegionInfoToEstateMenu();
- }
- }
-
- public void sendRegionHandshake(IClientAPI remoteClient)
- {
- remoteClient.SendRegionHandshake(m_scene.RegionInfo);
- }
-
- public void sendRegionHandshakeToAll()
- {
- m_scene.Broadcast(
- sendRegionHandshake
- );
- }
-
- #endregion
-
- #region IRegionModule Members
-
- public void Initialise(Scene scene, IConfigSource source)
- {
- m_scene = scene;
- m_scene.EventManager.OnNewClient += EventManager_OnNewClient;
- m_scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
- }
-
-
- public void PostInitialise()
- {
- }
-
- public void Close()
- {
- }
-
- public string Name
- {
- get { return "EstateManagementModule"; }
- }
-
- public bool IsSharedModule
- {
- get { return false; }
- }
-
- #endregion
-
- #region Other Functions
-
- public void changeWaterHeight(float height)
- {
- setRegionTerrainSettings(height, m_scene.RegionInfo.EstateSettings.terrainRaiseLimit, m_scene.RegionInfo.EstateSettings.terrainLowerLimit,
- m_scene.RegionInfo.EstateSettings.useFixedSun, m_scene.RegionInfo.EstateSettings.sunHour);
- sendRegionInfoPacketToAll();
- }
-
- #endregion
-
- private void EventManager_OnNewClient(IClientAPI client)
- {
- client.OnDetailedEstateDataRequest += sendDetailedEstateData;
- client.OnSetEstateFlagsRequest += estateSetRegionInfoHandler;
- client.OnSetEstateTerrainBaseTexture += setEstateTerrainBaseTexture;
- client.OnSetEstateTerrainDetailTexture += setEstateTerrainDetailTexture;
- client.OnSetEstateTerrainTextureHeights += setEstateTerrainTextureHeights;
- client.OnCommitEstateTerrainTextureRequest += handleCommitEstateTerrainTextureRequest;
- client.OnSetRegionTerrainSettings += setRegionTerrainSettings;
- client.OnEstateRestartSimRequest += handleEstateRestartSimRequest;
- client.OnEstateChangeCovenantRequest += handleChangeEstateCovenantRequest;
- client.OnUpdateEstateAccessDeltaRequest += handleEstateAccessDeltaRequest;
- client.OnSimulatorBlueBoxMessageRequest += SendSimulatorBlueBoxMessage;
- client.OnEstateBlueBoxMessageRequest += SendEstateBlueBoxMessage;
- client.OnEstateDebugRegionRequest += handleEstateDebugRegionRequest;
- client.OnEstateTeleportOneUserHomeRequest += handleEstateTeleportOneUserHomeRequest;
-
- client.OnRegionInfoRequest += HandleRegionInfoRequest;
- client.OnEstateCovenantRequest += HandleEstateCovenantRequest;
- sendRegionHandshake(client);
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System.Collections.Generic;
+using System.Reflection;
+using libsecondlife;
+using log4net;
+using Nini.Config;
+using OpenSim.Framework;
+using OpenSim.Region.Environment.Interfaces;
+using OpenSim.Region.Environment.Scenes;
+
+namespace OpenSim.Region.Environment.Modules.World.Estate
+{
+ public class EstateManagementModule : IRegionModule
+ {
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+
+ private Scene m_scene;
+
+ #region Packet Data Responders
+
+ private static void sendDetailedEstateData(IClientAPI remote_client, LLUUID invoice)
+ {
+ remote_client.sendDetailedEstateData(invoice);
+ remote_client.sendEstateManagersList(invoice);
+ }
+
+ private void estateSetRegionInfoHandler(bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor,
+ int matureLevel, bool restrictPushObject, bool allowParcelChanges)
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags = Simulator.RegionFlags.None;
+
+ if (blockTerraform)
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
+ Simulator.RegionFlags.BlockTerraform;
+ }
+
+ if (noFly)
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
+ Simulator.RegionFlags.NoFly;
+ }
+
+ if (allowDamage)
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
+ Simulator.RegionFlags.AllowDamage;
+ }
+
+ if (blockLandResell)
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
+ Simulator.RegionFlags.BlockLandResell;
+ }
+
+ m_scene.RegionInfo.EstateSettings.maxAgents = (byte) maxAgents;
+
+ m_scene.RegionInfo.EstateSettings.objectBonusFactor = objectBonusFactor;
+
+ m_scene.RegionInfo.EstateSettings.simAccess = (Simulator.SimAccess) matureLevel;
+
+
+ if (restrictPushObject)
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
+ Simulator.RegionFlags.RestrictPushObject;
+ }
+
+ if (allowParcelChanges)
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
+ Simulator.RegionFlags.AllowParcelChanges;
+ }
+
+ sendRegionInfoPacketToAll();
+ }
+
+ public void setEstateTerrainBaseTexture(IClientAPI remoteClient, int corner, LLUUID texture)
+ {
+ switch (corner)
+ {
+ case 0:
+ m_scene.RegionInfo.EstateSettings.terrainBase0 = texture;
+ break;
+ case 1:
+ m_scene.RegionInfo.EstateSettings.terrainBase1 = texture;
+ break;
+ case 2:
+ m_scene.RegionInfo.EstateSettings.terrainBase2 = texture;
+ break;
+ case 3:
+ m_scene.RegionInfo.EstateSettings.terrainBase3 = texture;
+ break;
+ }
+ }
+
+ public void setEstateTerrainDetailTexture(IClientAPI client, int corner, LLUUID textureUUID)
+ {
+ switch (corner)
+ {
+ case 0:
+ m_scene.RegionInfo.EstateSettings.terrainDetail0 = textureUUID;
+ break;
+ case 1:
+ m_scene.RegionInfo.EstateSettings.terrainDetail1 = textureUUID;
+ break;
+ case 2:
+ m_scene.RegionInfo.EstateSettings.terrainDetail2 = textureUUID;
+ break;
+ case 3:
+ m_scene.RegionInfo.EstateSettings.terrainDetail3 = textureUUID;
+ break;
+ }
+ }
+
+ public void setEstateTerrainTextureHeights(IClientAPI client, int corner, float lowValue, float highValue)
+ {
+ switch (corner)
+ {
+ case 0:
+ m_scene.RegionInfo.EstateSettings.terrainStartHeight0 = lowValue;
+ m_scene.RegionInfo.EstateSettings.terrainHeightRange0 = highValue;
+ break;
+ case 1:
+ m_scene.RegionInfo.EstateSettings.terrainStartHeight1 = lowValue;
+ m_scene.RegionInfo.EstateSettings.terrainHeightRange1 = highValue;
+ break;
+ case 2:
+ m_scene.RegionInfo.EstateSettings.terrainStartHeight2 = lowValue;
+ m_scene.RegionInfo.EstateSettings.terrainHeightRange2 = highValue;
+ break;
+ case 3:
+ m_scene.RegionInfo.EstateSettings.terrainStartHeight3 = lowValue;
+ m_scene.RegionInfo.EstateSettings.terrainHeightRange3 = highValue;
+ break;
+ }
+ }
+
+ private void handleCommitEstateTerrainTextureRequest(IClientAPI remoteClient)
+ {
+ sendRegionHandshakeToAll();
+ }
+
+ public void setRegionTerrainSettings(float WaterHeight, float TerrainRaiseLimit, float TerrainLowerLimit,
+ bool UseFixedSun, float SunHour)
+ {
+ // Water Height
+ m_scene.RegionInfo.EstateSettings.waterHeight = WaterHeight;
+
+ // Terraforming limits
+ m_scene.RegionInfo.EstateSettings.terrainRaiseLimit = TerrainRaiseLimit;
+ m_scene.RegionInfo.EstateSettings.terrainLowerLimit = TerrainLowerLimit;
+
+ // Time of day / fixed sun
+ m_scene.RegionInfo.EstateSettings.useFixedSun = UseFixedSun;
+ m_scene.RegionInfo.EstateSettings.sunHour = SunHour;
+
+ sendRegionInfoPacketToAll();
+ }
+
+ private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds)
+ {
+ m_scene.Restart(timeInSeconds);
+ }
+
+ private void handleChangeEstateCovenantRequest(IClientAPI remoteClient, LLUUID estateCovenantID)
+ {
+ m_scene.RegionInfo.CovenantID = estateCovenantID;
+ m_scene.RegionInfo.SaveEstatecovenantUUID(estateCovenantID);
+ }
+
+ private void handleEstateAccessDeltaRequest(IClientAPI remote_client, LLUUID invoice, int estateAccessType, LLUUID user)
+ {
+ // EstateAccessDelta handles Estate Managers, Sim Access, Sim Banlist, allowed Groups.. etc.
+
+ switch (estateAccessType)
+ {
+ case 256:
+
+ // This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml
+ // So make sure you really trust your region owners. because they can add other estate manaagers to your other estates
+ if (remote_client.AgentId == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.PermissionsMngr.BypassPermissions)
+ {
+ m_scene.RegionInfo.EstateSettings.AddEstateManager(user);
+ remote_client.sendEstateManagersList(invoice);
+ }
+ else
+ {
+ remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
+ }
+
+ break;
+ case 512:
+ // This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml
+ // So make sure you really trust your region owners. because they can add other estate manaagers to your other estates
+ if (remote_client.AgentId == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.PermissionsMngr.BypassPermissions)
+ {
+ m_scene.RegionInfo.EstateSettings.RemoveEstateManager(user);
+ remote_client.sendEstateManagersList(invoice);
+ }
+ else
+ {
+ remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
+ }
+ break;
+
+ default:
+
+ m_log.Error("EstateOwnerMessage: Unknown EstateAccessType requested in estateAccessDelta");
+ break;
+ }
+ }
+
+ private void SendSimulatorBlueBoxMessage(IClientAPI remote_client, LLUUID invoice, LLUUID senderID, LLUUID sessionID, string senderName, string message)
+ {
+ m_scene.SendRegionMessageFromEstateTools(senderID, sessionID, senderName, message);
+ }
+
+ private void SendEstateBlueBoxMessage(IClientAPI remote_client, LLUUID invoice, LLUUID senderID, LLUUID sessionID, string senderName, string message)
+ {
+ m_scene.SendEstateMessageFromEstateTools(senderID, sessionID, senderName, message);
+ }
+
+ private void handleEstateDebugRegionRequest(IClientAPI remote_client, LLUUID invoice, LLUUID senderID, bool scripted, bool collisionEvents, bool physics)
+ {
+ if (physics)
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags |= Simulator.RegionFlags.SkipPhysics;
+ }
+ else
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags &= ~Simulator.RegionFlags.SkipPhysics;
+ }
+
+ if (scripted)
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags |= Simulator.RegionFlags.SkipScripts;
+ }
+ else
+ {
+ m_scene.RegionInfo.EstateSettings.regionFlags &= ~Simulator.RegionFlags.SkipScripts;
+ }
+
+
+ m_scene.SetSceneCoreDebug(scripted, collisionEvents, physics);
+ }
+
+ private void handleEstateTeleportOneUserHomeRequest(IClientAPI remover_client, LLUUID invoice, LLUUID senderID, LLUUID prey)
+ {
+ if (prey != LLUUID.Zero)
+ {
+ ScenePresence s = m_scene.GetScenePresence(prey);
+ if (s != null)
+ {
+ m_scene.TeleportClientHome(prey, s.ControllingClient);
+ }
+ }
+ }
+
+ private static void HandleRegionInfoRequest(IClientAPI remote_client)
+ {
+ remote_client.sendRegionInfoToEstateMenu();
+ }
+
+ private static void HandleEstateCovenantRequest(IClientAPI remote_client)
+ {
+ remote_client.sendEstateCovenantInformation();
+ }
+
+ #endregion
+
+ #region Outgoing Packets
+
+ public void sendRegionInfoPacketToAll()
+ {
+ List avatars = m_scene.GetAvatars();
+
+ for (int i = 0; i < avatars.Count; i++)
+ {
+ avatars[i].ControllingClient.sendRegionInfoToEstateMenu();
+ }
+ }
+
+ public void sendRegionHandshake(IClientAPI remoteClient)
+ {
+ remoteClient.SendRegionHandshake(m_scene.RegionInfo);
+ }
+
+ public void sendRegionHandshakeToAll()
+ {
+ m_scene.Broadcast(
+ sendRegionHandshake
+ );
+ }
+
+ #endregion
+
+ #region IRegionModule Members
+
+ public void Initialise(Scene scene, IConfigSource source)
+ {
+ m_scene = scene;
+ m_scene.EventManager.OnNewClient += EventManager_OnNewClient;
+ m_scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
+ }
+
+
+ public void PostInitialise()
+ {
+ }
+
+ public void Close()
+ {
+ }
+
+ public string Name
+ {
+ get { return "EstateManagementModule"; }
+ }
+
+ public bool IsSharedModule
+ {
+ get { return false; }
+ }
+
+ #endregion
+
+ #region Other Functions
+
+ public void changeWaterHeight(float height)
+ {
+ setRegionTerrainSettings(height, m_scene.RegionInfo.EstateSettings.terrainRaiseLimit, m_scene.RegionInfo.EstateSettings.terrainLowerLimit,
+ m_scene.RegionInfo.EstateSettings.useFixedSun, m_scene.RegionInfo.EstateSettings.sunHour);
+ sendRegionInfoPacketToAll();
+ }
+
+ #endregion
+
+ private void EventManager_OnNewClient(IClientAPI client)
+ {
+ client.OnDetailedEstateDataRequest += sendDetailedEstateData;
+ client.OnSetEstateFlagsRequest += estateSetRegionInfoHandler;
+ client.OnSetEstateTerrainBaseTexture += setEstateTerrainBaseTexture;
+ client.OnSetEstateTerrainDetailTexture += setEstateTerrainDetailTexture;
+ client.OnSetEstateTerrainTextureHeights += setEstateTerrainTextureHeights;
+ client.OnCommitEstateTerrainTextureRequest += handleCommitEstateTerrainTextureRequest;
+ client.OnSetRegionTerrainSettings += setRegionTerrainSettings;
+ client.OnEstateRestartSimRequest += handleEstateRestartSimRequest;
+ client.OnEstateChangeCovenantRequest += handleChangeEstateCovenantRequest;
+ client.OnUpdateEstateAccessDeltaRequest += handleEstateAccessDeltaRequest;
+ client.OnSimulatorBlueBoxMessageRequest += SendSimulatorBlueBoxMessage;
+ client.OnEstateBlueBoxMessageRequest += SendEstateBlueBoxMessage;
+ client.OnEstateDebugRegionRequest += handleEstateDebugRegionRequest;
+ client.OnEstateTeleportOneUserHomeRequest += handleEstateTeleportOneUserHomeRequest;
+
+ client.OnRegionInfoRequest += HandleRegionInfoRequest;
+ client.OnEstateCovenantRequest += HandleEstateCovenantRequest;
+ sendRegionHandshake(client);
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/WorldMap/MapImageModule.cs b/OpenSim/Region/Environment/Modules/World/WorldMap/MapImageModule.cs
index 8ebe33e..68c8046 100644
--- a/OpenSim/Region/Environment/Modules/World/WorldMap/MapImageModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/WorldMap/MapImageModule.cs
@@ -1,167 +1,167 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Drawing;
-using Nini.Config;
-using OpenJPEGNet;
-using OpenSim.Region.Environment.Interfaces;
-using OpenSim.Region.Environment.Scenes;
-
-namespace OpenSim.Region.Environment.Modules.World.WorldMap
-{
- internal class MapImageModule : IMapImageGenerator, IRegionModule
- {
- private Scene m_scene;
-
- #region IMapImageGenerator Members
-
- public byte[] WriteJpeg2000Image(string gradientmap)
- {
- byte[] imageData = null;
-
- Bitmap bmp = TerrainToBitmap(gradientmap);
-
- try
- {
- imageData = OpenJPEG.EncodeFromImage(bmp, true);
- }
- catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke
- {
- Console.WriteLine("Failed generating terrain map: " + e);
- }
-
- return imageData;
- }
-
- #endregion
-
- #region IRegionModule Members
-
- public void Initialise(Scene scene, IConfigSource source)
- {
- m_scene = scene;
- m_scene.RegisterModuleInterface(this);
- }
-
- public void PostInitialise()
- {
- }
-
- public void Close()
- {
- }
-
- public string Name
- {
- get { return "MapImageModule"; }
- }
-
- public bool IsSharedModule
- {
- get { return false; }
- }
-
- #endregion
-
- private void ShadeBuildings(Bitmap map)
- {
- lock (map)
- {
- lock (m_scene.Entities)
- {
- foreach (EntityBase entity in m_scene.Entities.Values)
- {
- if (entity is SceneObjectGroup)
- {
- SceneObjectGroup sog = (SceneObjectGroup) entity;
-
- foreach (SceneObjectPart primitive in sog.Children.Values)
- {
- int x = (int) (primitive.AbsolutePosition.X - (primitive.Scale.X / 2));
- int y = (int) (primitive.AbsolutePosition.Y - (primitive.Scale.Y / 2));
- int w = (int) primitive.Scale.X;
- int h = (int) primitive.Scale.Y;
-
- int dx;
- for (dx = x; dx < x + w; dx++)
- {
- int dy;
- for (dy = y; dy < y + h; dy++)
- {
- if (x < 0 || y < 0)
- continue;
- if (x >= map.Width || y >= map.Height)
- continue;
-
- map.SetPixel(dx, dy, Color.DarkGray);
- }
- }
- }
- }
- }
- }
- }
- }
-
- private Bitmap TerrainToBitmap(string gradientmap)
- {
- Bitmap gradientmapLd = new Bitmap(gradientmap);
-
- int pallete = gradientmapLd.Height;
-
- Bitmap bmp = new Bitmap(m_scene.Heightmap.Width, m_scene.Heightmap.Height);
- Color[] colours = new Color[pallete];
-
- for (int i = 0; i < pallete; i++)
- {
- colours[i] = gradientmapLd.GetPixel(0, i);
- }
-
- lock (m_scene.Heightmap)
- {
- ITerrainChannel copy = m_scene.Heightmap;
- for (int y = 0; y < copy.Height; y++)
- {
- for (int x = 0; x < copy.Width; x++)
- {
- // 512 is the largest possible height before colours clamp
- int colorindex = (int) (Math.Max(Math.Min(1.0, copy[x, y] / 512.0), 0.0) * (pallete - 1));
-
- // Handle error conditions
- if (colorindex > pallete - 1 || colorindex < 0)
- bmp.SetPixel(x, copy.Height - y - 1, Color.Red);
- else
- bmp.SetPixel(x, copy.Height - y - 1, colours[colorindex]);
- }
- }
- ShadeBuildings(bmp);
- return bmp;
- }
- }
- }
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Drawing;
+using Nini.Config;
+using OpenJPEGNet;
+using OpenSim.Region.Environment.Interfaces;
+using OpenSim.Region.Environment.Scenes;
+
+namespace OpenSim.Region.Environment.Modules.World.WorldMap
+{
+ internal class MapImageModule : IMapImageGenerator, IRegionModule
+ {
+ private Scene m_scene;
+
+ #region IMapImageGenerator Members
+
+ public byte[] WriteJpeg2000Image(string gradientmap)
+ {
+ byte[] imageData = null;
+
+ Bitmap bmp = TerrainToBitmap(gradientmap);
+
+ try
+ {
+ imageData = OpenJPEG.EncodeFromImage(bmp, true);
+ }
+ catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke
+ {
+ Console.WriteLine("Failed generating terrain map: " + e);
+ }
+
+ return imageData;
+ }
+
+ #endregion
+
+ #region IRegionModule Members
+
+ public void Initialise(Scene scene, IConfigSource source)
+ {
+ m_scene = scene;
+ m_scene.RegisterModuleInterface(this);
+ }
+
+ public void PostInitialise()
+ {
+ }
+
+ public void Close()
+ {
+ }
+
+ public string Name
+ {
+ get { return "MapImageModule"; }
+ }
+
+ public bool IsSharedModule
+ {
+ get { return false; }
+ }
+
+ #endregion
+
+ private void ShadeBuildings(Bitmap map)
+ {
+ lock (map)
+ {
+ lock (m_scene.Entities)
+ {
+ foreach (EntityBase entity in m_scene.Entities.Values)
+ {
+ if (entity is SceneObjectGroup)
+ {
+ SceneObjectGroup sog = (SceneObjectGroup) entity;
+
+ foreach (SceneObjectPart primitive in sog.Children.Values)
+ {
+ int x = (int) (primitive.AbsolutePosition.X - (primitive.Scale.X / 2));
+ int y = (int) (primitive.AbsolutePosition.Y - (primitive.Scale.Y / 2));
+ int w = (int) primitive.Scale.X;
+ int h = (int) primitive.Scale.Y;
+
+ int dx;
+ for (dx = x; dx < x + w; dx++)
+ {
+ int dy;
+ for (dy = y; dy < y + h; dy++)
+ {
+ if (x < 0 || y < 0)
+ continue;
+ if (x >= map.Width || y >= map.Height)
+ continue;
+
+ map.SetPixel(dx, dy, Color.DarkGray);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private Bitmap TerrainToBitmap(string gradientmap)
+ {
+ Bitmap gradientmapLd = new Bitmap(gradientmap);
+
+ int pallete = gradientmapLd.Height;
+
+ Bitmap bmp = new Bitmap(m_scene.Heightmap.Width, m_scene.Heightmap.Height);
+ Color[] colours = new Color[pallete];
+
+ for (int i = 0; i < pallete; i++)
+ {
+ colours[i] = gradientmapLd.GetPixel(0, i);
+ }
+
+ lock (m_scene.Heightmap)
+ {
+ ITerrainChannel copy = m_scene.Heightmap;
+ for (int y = 0; y < copy.Height; y++)
+ {
+ for (int x = 0; x < copy.Width; x++)
+ {
+ // 512 is the largest possible height before colours clamp
+ int colorindex = (int) (Math.Max(Math.Min(1.0, copy[x, y] / 512.0), 0.0) * (pallete - 1));
+
+ // Handle error conditions
+ if (colorindex > pallete - 1 || colorindex < 0)
+ bmp.SetPixel(x, copy.Height - y - 1, Color.Red);
+ else
+ bmp.SetPixel(x, copy.Height - y - 1, colours[colorindex]);
+ }
+ }
+ ShadeBuildings(bmp);
+ return bmp;
+ }
+ }
+ }
}
\ No newline at end of file
--
cgit v1.1