Merge branch 'master' into careminster-presence-refactor
commit
05dbe4f2c4
|
@ -264,7 +264,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
|
|||
}
|
||||
|
||||
(scene as Scene).EventManager.TriggerOnChatToClients(
|
||||
fromID, receiverIDs, message, c.Type, fromPos, fromName, sourceType, ChatAudibleLevel.Fully);
|
||||
fromID, receiverIDs, message, c.Type, fromPos, fromName, sourceType, ChatAudibleLevel.Fully);
|
||||
}
|
||||
|
||||
static private Vector3 CenterOfRegion = new Vector3(128, 128, 30);
|
||||
|
|
|
@ -143,7 +143,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
|||
if (filePath == ArchiveConstants.CONTROL_FILE_PATH)
|
||||
{
|
||||
LoadControlFile(filePath, data);
|
||||
}
|
||||
}
|
||||
else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH))
|
||||
{
|
||||
if (LoadAsset(filePath, data))
|
||||
|
@ -479,11 +479,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
|||
/// <param name="path"></param>
|
||||
/// <param name="data"></param>
|
||||
protected void LoadControlFile(string path, byte[] data)
|
||||
{
|
||||
{
|
||||
XDocument doc = XDocument.Parse(Encoding.ASCII.GetString(data));
|
||||
XElement archiveElement = doc.Element("archive");
|
||||
int majorVersion = int.Parse(archiveElement.Attribute("major_version").Value);
|
||||
int minorVersion = int.Parse(archiveElement.Attribute("minor_version").Value);
|
||||
int minorVersion = int.Parse(archiveElement.Attribute("minor_version").Value);
|
||||
string version = string.Format("{0}.{1}", majorVersion, minorVersion);
|
||||
|
||||
if (majorVersion > MAX_MAJOR_VERSION)
|
||||
|
@ -492,7 +492,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
|||
string.Format(
|
||||
"The IAR you are trying to load has major version number of {0} but this version of OpenSim can only load IARs with major version number {1} and below",
|
||||
majorVersion, MAX_MAJOR_VERSION));
|
||||
}
|
||||
}
|
||||
|
||||
m_log.InfoFormat("[INVENTORY ARCHIVER]: Loading IAR with version {0}", version);
|
||||
}
|
||||
|
|
|
@ -213,7 +213,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
|||
public void Execute()
|
||||
{
|
||||
try
|
||||
{
|
||||
{
|
||||
InventoryFolderBase inventoryFolder = null;
|
||||
InventoryItemBase inventoryItem = null;
|
||||
InventoryFolderBase rootFolder = m_scene.InventoryService.GetRootFolder(m_userInfo.PrincipalID);
|
||||
|
@ -277,7 +277,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
|||
// Write out control file. This has to be done first so that subsequent loaders will see this file first
|
||||
// XXX: I know this is a weak way of doing it since external non-OAR aware tar executables will not do this
|
||||
m_archiveWriter.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, Create0p1ControlFile());
|
||||
m_log.InfoFormat("[INVENTORY ARCHIVER]: Added control file to archive.");
|
||||
m_log.InfoFormat("[INVENTORY ARCHIVER]: Added control file to archive.");
|
||||
|
||||
if (inventoryFolder != null)
|
||||
{
|
||||
|
|
|
@ -199,13 +199,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
|||
{
|
||||
majorVersion = 1;
|
||||
minorVersion = 0;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
m_log.InfoFormat("[ARCHIVER]: Creating version {0}.{1} OAR", majorVersion, minorVersion);
|
||||
// if (majorVersion == 1)
|
||||
// {
|
||||
// m_log.WarnFormat("[ARCHIVER]: Please be aware that version 1.0 OARs are not compatible with OpenSim 0.7.0.2 and earlier. Please use the --version=0 option if you want to produce a compatible OAR");
|
||||
// m_log.WarnFormat("[ARCHIVER]: Please be aware that version 1.0 OARs are not compatible with OpenSim 0.7.0.2 and earlier. Please use the --version=0 option if you want to produce a compatible OAR");
|
||||
// }
|
||||
|
||||
|
||||
|
@ -232,6 +232,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
|||
sw.Close();
|
||||
|
||||
return s;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,10 +44,8 @@ namespace OpenSim.Region.CoreModules
|
|||
/// it is not based on ~06:00 == Sun Rise. Rather it is based on 00:00 being sun-rise.
|
||||
/// </summary>
|
||||
|
||||
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
|
||||
//
|
||||
// Global Constants used to determine where in the sky the sun is
|
||||
//
|
||||
|
@ -108,26 +106,25 @@ namespace OpenSim.Region.CoreModules
|
|||
private Scene m_scene = null;
|
||||
|
||||
// Calculated Once in the lifetime of a region
|
||||
private long TicksToEpoch; // Elapsed time for 1/1/1970
|
||||
private uint SecondsPerSunCycle; // Length of a virtual day in RW seconds
|
||||
private uint SecondsPerYear; // Length of a virtual year in RW seconds
|
||||
private double SunSpeed; // Rate of passage in radians/second
|
||||
private double SeasonSpeed; // Rate of change for seasonal effects
|
||||
// private double HoursToRadians; // Rate of change for seasonal effects
|
||||
private long TicksUTCOffset = 0; // seconds offset from UTC
|
||||
private long TicksToEpoch; // Elapsed time for 1/1/1970
|
||||
private uint SecondsPerSunCycle; // Length of a virtual day in RW seconds
|
||||
private uint SecondsPerYear; // Length of a virtual year in RW seconds
|
||||
private double SunSpeed; // Rate of passage in radians/second
|
||||
private double SeasonSpeed; // Rate of change for seasonal effects
|
||||
// private double HoursToRadians; // Rate of change for seasonal effects
|
||||
private long TicksUTCOffset = 0; // seconds offset from UTC
|
||||
// Calculated every update
|
||||
private float OrbitalPosition; // Orbital placement at a point in time
|
||||
private double HorizonShift; // Axis offset to skew day and night
|
||||
private double TotalDistanceTravelled; // Distance since beginning of time (in radians)
|
||||
private double SeasonalOffset; // Seaonal variation of tilt
|
||||
private float Magnitude; // Normal tilt
|
||||
// private double VWTimeRatio; // VW time as a ratio of real time
|
||||
private float OrbitalPosition; // Orbital placement at a point in time
|
||||
private double HorizonShift; // Axis offset to skew day and night
|
||||
private double TotalDistanceTravelled; // Distance since beginning of time (in radians)
|
||||
private double SeasonalOffset; // Seaonal variation of tilt
|
||||
private float Magnitude; // Normal tilt
|
||||
// private double VWTimeRatio; // VW time as a ratio of real time
|
||||
|
||||
// Working values
|
||||
private Vector3 Position = Vector3.Zero;
|
||||
private Vector3 Velocity = Vector3.Zero;
|
||||
private Quaternion Tilt = new Quaternion(1.0f, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
private Quaternion Tilt = new Quaternion(1.0f, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
// Used to fix the sun in the sky so it doesn't move based on current time
|
||||
private bool m_SunFixed = false;
|
||||
|
@ -135,8 +132,6 @@ namespace OpenSim.Region.CoreModules
|
|||
|
||||
private const int TICKS_PER_SECOND = 10000000;
|
||||
|
||||
|
||||
|
||||
// Current time in elapsed seconds since Jan 1st 1970
|
||||
private ulong CurrentTime
|
||||
{
|
||||
|
@ -149,8 +144,6 @@ namespace OpenSim.Region.CoreModules
|
|||
// Time in seconds since UTC to use to calculate sun position.
|
||||
ulong PosTime = 0;
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Calculate the sun's orbital position and its velocity.
|
||||
/// </summary>
|
||||
|
@ -202,7 +195,6 @@ namespace OpenSim.Region.CoreModules
|
|||
PosTime += (ulong)(((CurDayPercentage - 0.5) / .5) * NightSeconds);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
TotalDistanceTravelled = SunSpeed * PosTime; // distance measured in radians
|
||||
|
@ -251,7 +243,6 @@ namespace OpenSim.Region.CoreModules
|
|||
Velocity.X = 0;
|
||||
Velocity.Y = 0;
|
||||
Velocity.Z = 0;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -271,9 +262,7 @@ namespace OpenSim.Region.CoreModules
|
|||
private float GetCurrentTimeAsLindenSunHour()
|
||||
{
|
||||
if (m_SunFixed)
|
||||
{
|
||||
return m_SunFixedHour + 6;
|
||||
}
|
||||
|
||||
return GetCurrentSunHour() + 6.0f;
|
||||
}
|
||||
|
@ -297,8 +286,6 @@ namespace OpenSim.Region.CoreModules
|
|||
m_scene.AddCommand(this, String.Format("sun {0}", kvp.Key), String.Format("{0} - {1}", kvp.Key, kvp.Value), "", HandleSunConsoleCommand);
|
||||
}
|
||||
|
||||
|
||||
|
||||
TimeZone local = TimeZone.CurrentTimeZone;
|
||||
TicksUTCOffset = local.GetUtcOffset(local.ToLocalTime(DateTime.Now)).Ticks;
|
||||
m_log.Debug("[SUN]: localtime offset is " + TicksUTCOffset);
|
||||
|
@ -325,13 +312,11 @@ namespace OpenSim.Region.CoreModules
|
|||
// must hard code to ~.5 to match sun position in LL based viewers
|
||||
m_HorizonShift = config.Configs["Sun"].GetDouble("day_night_offset", d_day_night);
|
||||
|
||||
|
||||
// Scales the sun hours 0...12 vs 12...24, essentially makes daylight hours longer/shorter vs nighttime hours
|
||||
m_DayTimeSunHourScale = config.Configs["Sun"].GetDouble("day_time_sun_hour_scale", d_DayTimeSunHourScale);
|
||||
|
||||
// Update frequency in frames
|
||||
m_UpdateInterval = config.Configs["Sun"].GetInt("update_interval", d_frame_mod);
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -391,10 +376,8 @@ namespace OpenSim.Region.CoreModules
|
|||
}
|
||||
|
||||
scene.RegisterModuleInterface<ISunModule>(this);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void PostInitialise()
|
||||
{
|
||||
}
|
||||
|
@ -402,7 +385,7 @@ namespace OpenSim.Region.CoreModules
|
|||
public void Close()
|
||||
{
|
||||
ready = false;
|
||||
|
||||
|
||||
// Remove our hooks
|
||||
m_scene.EventManager.OnFrame -= SunUpdate;
|
||||
m_scene.EventManager.OnAvatarEnteringNewParcel -= AvatarEnteringParcel;
|
||||
|
@ -419,6 +402,7 @@ namespace OpenSim.Region.CoreModules
|
|||
{
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region EventManager Events
|
||||
|
@ -446,9 +430,7 @@ namespace OpenSim.Region.CoreModules
|
|||
public void SunUpdate()
|
||||
{
|
||||
if (((m_frame++ % m_UpdateInterval) != 0) || !ready || m_SunFixed || !receivedEstateToolsSunUpdate)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
GenSunPos(); // Generate shared values once
|
||||
|
||||
|
@ -467,7 +449,7 @@ namespace OpenSim.Region.CoreModules
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="regionHandle"></param>
|
||||
/// <param name="FixedTime">Is the sun's position fixed?</param>
|
||||
|
@ -484,7 +466,6 @@ namespace OpenSim.Region.CoreModules
|
|||
while (FixedSunHour < 0)
|
||||
FixedSunHour += 24;
|
||||
|
||||
|
||||
m_SunFixedHour = FixedSunHour;
|
||||
m_SunFixed = FixedSun;
|
||||
|
||||
|
@ -499,14 +480,12 @@ namespace OpenSim.Region.CoreModules
|
|||
// When sun settings are updated, we should update all clients with new settings.
|
||||
SunUpdateToAllClients();
|
||||
|
||||
|
||||
m_log.DebugFormat("[SUN]: PosTime : {0}", PosTime.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
private void SunUpdateToAllClients()
|
||||
{
|
||||
m_scene.ForEachScenePresence(delegate(ScenePresence sp)
|
||||
|
@ -553,7 +532,6 @@ namespace OpenSim.Region.CoreModules
|
|||
{
|
||||
float ticksleftover = CurrentTime % SecondsPerSunCycle;
|
||||
|
||||
|
||||
return (24.0f * (ticksleftover / SecondsPerSunCycle));
|
||||
}
|
||||
|
||||
|
@ -666,7 +644,6 @@ namespace OpenSim.Region.CoreModules
|
|||
|
||||
// When sun settings are updated, we should update all clients with new settings.
|
||||
SunUpdateToAllClients();
|
||||
|
||||
}
|
||||
|
||||
return Output;
|
||||
|
|
|
@ -300,7 +300,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// ChatToClientsEvent is triggered via ChatModule (or
|
||||
/// substitutes thereof) when a chat message is actually sent to clients. Clients will only be sent a
|
||||
/// received chat message if they satisfy various conditions (within audible range, etc.)
|
||||
/// </summary>
|
||||
/// </summary>
|
||||
public delegate void ChatToClientsEvent(
|
||||
UUID senderID, HashSet<UUID> receiverIDs,
|
||||
string message, ChatTypeEnum type, Vector3 fromPos, string fromName,
|
||||
|
@ -1660,8 +1660,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
e.Message, e.StackTrace);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void TriggerOnChatBroadcast(Object sender, OSChatMessage chat)
|
||||
{
|
||||
|
|
|
@ -3394,7 +3394,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
m_log.WarnFormat("[SCENE]: Deregister from grid failed for region {0}", m_regInfo.RegionName);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Do the work necessary to initiate a new user connection for a particular scene.
|
||||
/// At the moment, this consists of setting up the caps infrastructure
|
||||
|
@ -3406,6 +3405,23 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// <returns>True if the region accepts this agent. False if it does not. False will
|
||||
/// also return a reason.</returns>
|
||||
public bool NewUserConnection(AgentCircuitData agent, uint teleportFlags, out string reason)
|
||||
{
|
||||
return NewUserConnection(agent, teleportFlags, out reason, true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Do the work necessary to initiate a new user connection for a particular scene.
|
||||
/// At the moment, this consists of setting up the caps infrastructure
|
||||
/// The return bool should allow for connections to be refused, but as not all calling paths
|
||||
/// take proper notice of it let, we allowed banned users in still.
|
||||
/// </summary>
|
||||
/// <param name="agent">CircuitData of the agent who is connecting</param>
|
||||
/// <param name="reason">Outputs the reason for the false response on this string</param>
|
||||
/// <param name="requirePresenceLookup">True for normal presence. False for NPC
|
||||
/// or other applications where a full grid/Hypergrid presence may not be required.</param>
|
||||
/// <returns>True if the region accepts this agent. False if it does not. False will
|
||||
/// also return a reason.</returns>
|
||||
public bool NewUserConnection(AgentCircuitData agent, uint teleportFlags, out string reason, bool requirePresenceLookup)
|
||||
{
|
||||
bool vialogin = ((teleportFlags & (uint)Constants.TeleportFlags.ViaLogin) != 0 ||
|
||||
(teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0);
|
||||
|
@ -3456,16 +3472,18 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
if (sp == null) // We don't have an [child] agent here already
|
||||
{
|
||||
|
||||
try
|
||||
if (requirePresenceLookup)
|
||||
{
|
||||
if (!VerifyUserPresence(agent, out reason))
|
||||
try
|
||||
{
|
||||
if (!VerifyUserPresence(agent, out reason))
|
||||
return false;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat("[CONNECTION BEGIN]: Exception verifying presence " + e.ToString());
|
||||
return false;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat("[CONNECTION BEGIN]: Exception verifying presence " + e.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
|
|
|
@ -428,11 +428,14 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
public bool DeleteSceneObject(UUID uuid, bool resultOfObjectLinked)
|
||||
{
|
||||
EntityBase entity;
|
||||
if (!Entities.TryGetValue(uuid, out entity) && entity is SceneObjectGroup)
|
||||
if (!Entities.TryGetValue(uuid, out entity) || (!(entity is SceneObjectGroup)))
|
||||
return false;
|
||||
|
||||
SceneObjectGroup grp = (SceneObjectGroup)entity;
|
||||
|
||||
if (entity == null)
|
||||
return false;
|
||||
|
||||
if (!resultOfObjectLinked)
|
||||
{
|
||||
m_numPrim -= grp.PrimCount;
|
||||
|
|
|
@ -804,7 +804,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
|
|||
private static void ProcessShpTextureEntry(PrimitiveBaseShape shp, XmlTextReader reader)
|
||||
{
|
||||
byte[] teData = Convert.FromBase64String(reader.ReadElementString("TextureEntry"));
|
||||
shp.Textures = new Primitive.TextureEntry(teData, 0, teData.Length);
|
||||
shp.Textures = new Primitive.TextureEntry(teData, 0, teData.Length);
|
||||
}
|
||||
|
||||
private static void ProcessShpExtraParams(PrimitiveBaseShape shp, XmlTextReader reader)
|
||||
|
|
|
@ -220,7 +220,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
|||
groupID, groupMembers.Count);
|
||||
|
||||
foreach (GroupMembersData member in groupMembers)
|
||||
{
|
||||
{
|
||||
if (m_groupData.hasAgentDroppedGroupChatSession(member.AgentID, groupID))
|
||||
{
|
||||
// Don't deliver messages to people who have dropped this session
|
||||
|
@ -266,7 +266,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
|||
|
||||
void OnClientLogin(IClientAPI client)
|
||||
{
|
||||
if (m_debugEnabled) m_log.DebugFormat("[GROUPS-MESSAGING]: OnInstantMessage registered for {0}", client.Name);
|
||||
if (m_debugEnabled) m_log.DebugFormat("[GROUPS-MESSAGING]: OnInstantMessage registered for {0}", client.Name);
|
||||
}
|
||||
|
||||
private void OnNewClient(IClientAPI client)
|
||||
|
|
|
@ -50,7 +50,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
|||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private Scene m_scene;
|
||||
|
||||
|
||||
private readonly Dictionary<UUID,MRMBase> m_scripts = new Dictionary<UUID, MRMBase>();
|
||||
|
||||
private readonly Dictionary<Type,object> m_extensions = new Dictionary<Type, object>();
|
||||
|
@ -77,7 +77,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
|||
{
|
||||
m_log.Info("[MRM] Enabling MRM Module");
|
||||
m_scene = scene;
|
||||
|
||||
|
||||
// when hidden, we don't listen for client initiated script events
|
||||
// only making the MRM engine available for region modules
|
||||
if (!source.Configs["MRM"].GetBoolean("Hidden", false))
|
||||
|
@ -85,7 +85,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
|||
scene.EventManager.OnRezScript += EventManager_OnRezScript;
|
||||
scene.EventManager.OnStopScript += EventManager_OnStopScript;
|
||||
}
|
||||
|
||||
|
||||
scene.EventManager.OnFrame += EventManager_OnFrame;
|
||||
|
||||
scene.RegisterModuleInterface<IMRMModule>(this);
|
||||
|
@ -304,7 +304,6 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
|||
|
||||
public void PostInitialise()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Close()
|
||||
|
@ -350,7 +349,6 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
|||
if (!Directory.Exists(tmp))
|
||||
Directory.CreateDirectory(tmp);
|
||||
|
||||
|
||||
m_log.Info("MRM 2");
|
||||
|
||||
try
|
||||
|
@ -396,8 +394,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
|||
|
||||
parameters.IncludeDebugInformation = true;
|
||||
|
||||
string rootPath =
|
||||
Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
|
||||
string rootPath = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
|
||||
|
||||
List<string> libraries = new List<string>();
|
||||
string[] lines = Script.Split(new string[] {"\n"}, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
|
Loading…
Reference in New Issue