Merge branch 'master' into careminster

This commit is contained in:
Melanie
2012-01-21 19:52:33 +00:00
22 changed files with 762 additions and 46 deletions

View File

@@ -100,12 +100,14 @@ namespace OpenSim.Region.CoreModules.World.Archiver
options.Add("s|skip-assets", delegate (string v) { skipAssets = v != null; });
// Send a message to the region ready module
/* bluewall* Disable this for the time being
IRegionReadyModule rready = m_scene.RequestModuleInterface<IRegionReadyModule>();
if (rready != null)
{
rready.OarLoadingAlert("load");
}
*/
List<string> mainParams = options.Parse(cmdparams);

View File

@@ -344,7 +344,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
{
using (BinaryReader br = new BinaryReader(resource))
{
// FIXME: Use the inspector insteadthere are so many forums and lists already, though admittedly none of them are suitable for cross virtual-enivornemnt discussion
// FIXME: Use the inspector instead
soundData = br.ReadBytes(99999999);
UUID soundUuid = UUID.Parse("00000000-0000-0000-0000-000000000001");
string soundAssetFileName

View File

@@ -55,6 +55,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
protected EstateManagementCommands m_commands;
private EstateTerrainXferHandler TerrainUploader;
private TelehubManager m_Telehub;
public event ChangeDelegate OnRegionInfoChange;
public event ChangeDelegate OnEstateInfoChange;
@@ -614,6 +615,65 @@ namespace OpenSim.Region.CoreModules.World.Estate
}
}
private void handleOnEstateManageTelehub (IClientAPI client, UUID invoice, UUID senderID, string cmd, uint param1)
{
uint ObjectLocalID;
SceneObjectPart part;
// UUID EstateID = Scene.RegionInfo.EstateSettings.EstateID;
TelehubManager.Telehub telehub;
switch (cmd)
{
case "info ui":
// Send info:
if (m_Telehub.HasTelehub)
{
telehub = m_Telehub.TelehubVals();
client.SendTelehubInfo(telehub.ObjectID, telehub.ObjectName, telehub.ObjectPosition,
telehub.ObjectRotation, telehub.SpawnPoint);
}
else
{
return;
}
break;
case "connect":
// Add the Telehub
part = Scene.GetSceneObjectPart((uint)param1);
telehub = m_Telehub.Connect(part);
client.SendTelehubInfo(telehub.ObjectID, telehub.ObjectName, telehub.ObjectPosition,
telehub.ObjectRotation, telehub.SpawnPoint);
break;
case "delete":
// Disconnect Telehub
part = Scene.GetSceneObjectPart((uint)param1);
telehub = m_Telehub.DisConnect(part);
client.SendTelehubInfo(telehub.ObjectID, telehub.ObjectName, telehub.ObjectPosition,
telehub.ObjectRotation, telehub.SpawnPoint);
break;
case "spawnpoint add":
// Add SpawnPoint to the Telehub
part = Scene.GetSceneObjectPart((uint)param1);
telehub = m_Telehub.AddSpawnPoint(part.AbsolutePosition);
client.SendTelehubInfo(telehub.ObjectID, telehub.ObjectName, telehub.ObjectPosition,
telehub.ObjectRotation, telehub.SpawnPoint);
break;
case "spawnpoint remove":
// Remove SpawnPoint from Telehub
telehub = m_Telehub.RemoveSpawnPoint((int)param1);
client.SendTelehubInfo(telehub.ObjectID, telehub.ObjectName, telehub.ObjectPosition,
telehub.ObjectRotation, telehub.SpawnPoint);
break;
default:
break;
}
}
private void SendSimulatorBlueBoxMessage(
IClientAPI remote_client, UUID invoice, UUID senderID, UUID sessionID, string senderName, string message)
{
@@ -1084,7 +1144,9 @@ namespace OpenSim.Region.CoreModules.World.Estate
Scene.RegisterModuleInterface<IEstateModule>(this);
Scene.EventManager.OnNewClient += EventManager_OnNewClient;
Scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
m_Telehub = new TelehubManager(scene);
m_commands = new EstateManagementCommands(this);
m_commands.Initialise();
}
@@ -1138,6 +1200,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
client.OnEstateRestartSimRequest += handleEstateRestartSimRequest;
client.OnEstateChangeCovenantRequest += handleChangeEstateCovenantRequest;
client.OnEstateChangeInfo += handleEstateChangeInfo;
client.OnEstateManageTelehub += handleOnEstateManageTelehub;
client.OnUpdateEstateAccessDeltaRequest += handleEstateAccessDeltaRequest;
client.OnSimulatorBlueBoxMessageRequest += SendSimulatorBlueBoxMessage;
client.OnEstateBlueBoxMessageRequest += SendEstateBlueBoxMessage;

View File

@@ -0,0 +1,130 @@
/*
* 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 OpenSimulator 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 OpenMetaverse;
using System.Collections.Generic;
using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.World.Estate
{
public class TelehubManager
{
public struct Telehub
{
public UUID ObjectID;
public string ObjectName;
public Vector3 ObjectPosition;
public Quaternion ObjectRotation;
public List<Vector3> SpawnPoint;
};
private UUID ObjectID;
private string ObjectName;
private Vector3 ObjectPosition;
Quaternion ObjectRotation;
List<Vector3> SpawnPoint = new List<Vector3>();
UUID EstateID;
bool m_HasTelehub = false;
Scene m_Scene;
// This will get an option...
Vector3 InitialSpawnPoint = new Vector3(0.0f,0.0f,-3.0f);
public bool HasTelehub
{
get { return m_HasTelehub; }
}
public TelehubManager(Scene scene)
{
m_Scene = scene;
}
// Fill our Telehub struct with values
public Telehub TelehubVals()
{
Telehub telehub = new Telehub();
telehub.ObjectID = ObjectID;
telehub.ObjectName = ObjectName;
telehub.ObjectPosition = ObjectPosition;
telehub.ObjectRotation = ObjectRotation;
telehub.SpawnPoint = SpawnPoint;
return telehub;
}
// Connect the Telehub
public Telehub Connect(SceneObjectPart part)
{
ObjectID = part.UUID;
ObjectName = part.Name;
ObjectPosition = part.AbsolutePosition;
ObjectRotation = part.GetWorldRotation();
// Clear this for now
SpawnPoint.Clear();
SpawnPoint.Add(InitialSpawnPoint);
m_HasTelehub = true;
return TelehubVals();
}
// Disconnect the Telehub
public Telehub DisConnect(SceneObjectPart part)
{
ObjectID = UUID.Zero;
ObjectName = String.Empty;
ObjectPosition = Vector3.Zero;
ObjectRotation = Quaternion.Identity;
SpawnPoint.Clear();
m_HasTelehub = false;
return TelehubVals();
}
// Add a SpawnPoint to the Telehub
public Telehub AddSpawnPoint(Vector3 point)
{
float dist = (float) Util.GetDistanceTo(ObjectPosition, point);
Vector3 nvec = Util.GetNormalizedVector(point - ObjectPosition);
Vector3 spoint = nvec * dist;
SpawnPoint.Add(spoint);
return TelehubVals();
}
// Remove a SpawnPoint from the Telehub
public Telehub RemoveSpawnPoint(int spawnpoint)
{
SpawnPoint.RemoveAt(spawnpoint);
return TelehubVals();
}
}
}