Merge branch 'master' into vehicles
commit
ffd59868f5
|
@ -402,6 +402,7 @@ namespace OpenSim.Client.VWoHTTP.ClientStack
|
|||
public event PickInfoUpdate OnPickInfoUpdate = delegate { };
|
||||
public event AvatarNotesUpdate OnAvatarNotesUpdate = delegate { };
|
||||
public event MuteListRequest OnMuteListRequest = delegate { };
|
||||
public event AvatarInterestUpdate OnAvatarInterestUpdate = delegate { };
|
||||
public event PlacesQuery OnPlacesQuery = delegate { };
|
||||
|
||||
|
||||
|
@ -1118,6 +1119,11 @@ namespace OpenSim.Client.VWoHTTP.ClientStack
|
|||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
public void SendAvatarInterestUpdate(IClientAPI client, uint wantmask, string wanttext, uint skillsmask, string skillstext, string languages)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
public void SendParcelDwellReply(int localID, UUID parcelID, float dwell)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
|
|
|
@ -792,6 +792,7 @@ namespace OpenSim.Framework
|
|||
event PickGodDelete OnPickGodDelete;
|
||||
event PickInfoUpdate OnPickInfoUpdate;
|
||||
event AvatarNotesUpdate OnAvatarNotesUpdate;
|
||||
event AvatarInterestUpdate OnAvatarInterestUpdate;
|
||||
|
||||
event MuteListRequest OnMuteListRequest;
|
||||
|
||||
|
|
|
@ -303,6 +303,7 @@ namespace OpenSim.Framework
|
|||
private int m_physPrimMax = 0;
|
||||
private bool m_clampPrimSize = false;
|
||||
private int m_objectCapacity = 0;
|
||||
private string m_regionType = String.Empty;
|
||||
|
||||
|
||||
// Apparently, we're applying the same estatesettings regardless of whether it's local or remote.
|
||||
|
@ -478,6 +479,11 @@ namespace OpenSim.Framework
|
|||
get { return (byte)Util.ConvertMaturityToAccessLevel((uint)RegionSettings.Maturity); }
|
||||
}
|
||||
|
||||
public string RegionType
|
||||
{
|
||||
get { return m_regionType; }
|
||||
}
|
||||
|
||||
public void SetEndPoint(string ipaddr, int port)
|
||||
{
|
||||
IPAddress tmpIP = IPAddress.Parse(ipaddr);
|
||||
|
@ -654,7 +660,7 @@ namespace OpenSim.Framework
|
|||
|
||||
MasterAvatarAssignedUUID = new UUID(masterAvatarUUID);
|
||||
|
||||
|
||||
m_regionType = config.GetString("RegionType", String.Empty);
|
||||
|
||||
// Prim stuff
|
||||
//
|
||||
|
@ -721,6 +727,9 @@ namespace OpenSim.Framework
|
|||
|
||||
if (ScopeID != UUID.Zero)
|
||||
config.Set("ScopeID", ScopeID.ToString());
|
||||
|
||||
if (RegionType != String.Empty)
|
||||
config.Set("RegionType", RegionType);
|
||||
}
|
||||
|
||||
public bool ignoreIncomingConfiguration(string configuration_key, object configuration_result)
|
||||
|
@ -810,6 +819,9 @@ namespace OpenSim.Framework
|
|||
|
||||
configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
|
||||
"Scope ID for this region", ScopeID.ToString(), true);
|
||||
|
||||
configMember.addConfigurationOption("region_type", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
|
||||
"Region Type", String.Empty, true);
|
||||
}
|
||||
|
||||
public void loadConfigurationOptions()
|
||||
|
@ -873,6 +885,9 @@ namespace OpenSim.Framework
|
|||
|
||||
configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
|
||||
"Scope ID for this region", UUID.Zero.ToString(), true);
|
||||
|
||||
configMember.addConfigurationOption("region_type", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
|
||||
"Region Type", String.Empty, true);
|
||||
}
|
||||
|
||||
public bool shouldMasterAvatarDetailsBeAsked(string configuration_key)
|
||||
|
@ -953,6 +968,9 @@ namespace OpenSim.Framework
|
|||
case "scope_id":
|
||||
ScopeID = (UUID)configuration_result;
|
||||
break;
|
||||
case "region_type":
|
||||
m_regionType = (string)configuration_result;
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -988,6 +1006,8 @@ namespace OpenSim.Framework
|
|||
args["allow_alt_ports"] = OSD.FromBoolean(m_allow_alternate_ports);
|
||||
if ((proxyUrl != null) && !proxyUrl.Equals(""))
|
||||
args["proxy_url"] = OSD.FromString(proxyUrl);
|
||||
if (RegionType != String.Empty)
|
||||
args["region_type"] = OSD.FromString(RegionType);
|
||||
|
||||
return args;
|
||||
}
|
||||
|
@ -1035,6 +1055,8 @@ namespace OpenSim.Framework
|
|||
m_allow_alternate_ports = args["allow_alt_ports"].AsBoolean();
|
||||
if (args["proxy_url"] != null)
|
||||
proxyUrl = args["proxy_url"].AsString();
|
||||
if (args["region_type"] != null)
|
||||
m_regionType = args["region_type"].AsString();
|
||||
}
|
||||
|
||||
public static RegionInfo Create(UUID regionID, string regionName, uint regX, uint regY, string externalHostName, uint httpPort, uint simPort, uint remotingPort, string serverURI)
|
||||
|
|
|
@ -9969,11 +9969,28 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
Utils.BytesToString(avatarNotesUpdate.Data.Notes));
|
||||
break;
|
||||
|
||||
// case PacketType.AvatarInterestsUpdate:
|
||||
// AvatarInterestsUpdatePacket avatarInterestUpdate =
|
||||
// (AvatarInterestsUpdatePacket)Pack;
|
||||
//
|
||||
// break;
|
||||
case PacketType.AvatarInterestsUpdate:
|
||||
AvatarInterestsUpdatePacket avatarInterestUpdate =
|
||||
(AvatarInterestsUpdatePacket)Pack;
|
||||
|
||||
#region Packet Session and User Check
|
||||
if (m_checkPackets)
|
||||
{
|
||||
if (avatarInterestUpdate.AgentData.SessionID != SessionId ||
|
||||
avatarInterestUpdate.AgentData.AgentID != AgentId)
|
||||
break;
|
||||
}
|
||||
#endregion
|
||||
|
||||
AvatarInterestUpdate handlerAvatarInterestUpdate = OnAvatarInterestUpdate;
|
||||
if (handlerAvatarInterestUpdate != null)
|
||||
handlerAvatarInterestUpdate(this,
|
||||
avatarInterestUpdate.PropertiesData.WantToMask,
|
||||
Utils.BytesToString(avatarInterestUpdate.PropertiesData.WantToText),
|
||||
avatarInterestUpdate.PropertiesData.SkillsMask,
|
||||
Utils.BytesToString(avatarInterestUpdate.PropertiesData.SkillsText),
|
||||
Utils.BytesToString(avatarInterestUpdate.PropertiesData.LanguagesText));
|
||||
break;
|
||||
|
||||
case PacketType.PlacesQuery:
|
||||
PlacesQueryPacket placesQueryPacket =
|
||||
|
|
|
@ -128,6 +128,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
public CommunicationsManager CommsManager;
|
||||
|
||||
protected SceneCommunicationService m_sceneGridService;
|
||||
public bool loginsdisabled = true;
|
||||
|
||||
public SceneCommunicationService SceneGridService
|
||||
{
|
||||
|
@ -1062,6 +1063,11 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
StatsReporter.SetActiveScripts(m_sceneGraph.GetActiveScriptsCount());
|
||||
StatsReporter.addScriptLines(m_sceneGraph.GetScriptLPS());
|
||||
}
|
||||
if (loginsdisabled && (m_frame > 20))
|
||||
{
|
||||
m_log.Debug("[REGION]: Enabling Logins");
|
||||
loginsdisabled = false;
|
||||
}
|
||||
}
|
||||
catch (NotImplementedException)
|
||||
{
|
||||
|
@ -3227,6 +3233,11 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// also return a reason.</returns>
|
||||
public bool NewUserConnection(AgentCircuitData agent, out string reason)
|
||||
{
|
||||
if (loginsdisabled)
|
||||
{
|
||||
reason = "Logins Disabled";
|
||||
return false;
|
||||
}
|
||||
// Don't disable this log message - it's too helpful
|
||||
m_log.InfoFormat(
|
||||
"[CONNECTION BEGIN]: Region {0} told of incoming {1} agent {2} {3} {4} (circuit code {5})",
|
||||
|
|
|
@ -908,6 +908,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (PhysicsActor != null)
|
||||
{
|
||||
m_physicsActor.OnRequestTerseUpdate -= SendTerseUpdateToAllClients;
|
||||
m_physicsActor.OnOutOfBounds -= OutOfBoundsCall;
|
||||
m_scene.PhysicsScene.RemoveAvatar(PhysicsActor);
|
||||
m_physicsActor.UnSubscribeEvents();
|
||||
m_physicsActor.OnCollisionUpdate -= PhysicsCollisionUpdate;
|
||||
|
@ -3410,11 +3411,22 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
scene.AddPhysicsActorTaint(m_physicsActor);
|
||||
//m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients;
|
||||
m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate;
|
||||
m_physicsActor.OnOutOfBounds += OutOfBoundsCall; // Called for PhysicsActors when there's something wrong
|
||||
m_physicsActor.SubscribeEvents(500);
|
||||
m_physicsActor.LocalID = LocalId;
|
||||
|
||||
}
|
||||
|
||||
private void OutOfBoundsCall(PhysicsVector pos)
|
||||
{
|
||||
//bool flying = m_physicsActor.Flying;
|
||||
//RemoveFromPhysicalScene();
|
||||
|
||||
//AddToPhysicalScene(flying);
|
||||
if (ControllingClient != null)
|
||||
ControllingClient.SendAgentAlertMessage("Physics is having a problem with your avatar. You may not be able to move until you relog.",true);
|
||||
}
|
||||
|
||||
// Event called by the physics plugin to tell the avatar about a collision.
|
||||
private void PhysicsCollisionUpdate(EventArgs e)
|
||||
{
|
||||
|
|
|
@ -831,7 +831,9 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
|
|||
public event PickInfoUpdate OnPickInfoUpdate;
|
||||
public event AvatarNotesUpdate OnAvatarNotesUpdate;
|
||||
public event MuteListRequest OnMuteListRequest;
|
||||
public event AvatarInterestUpdate OnAvatarInterestUpdate;
|
||||
public event PlacesQuery OnPlacesQuery;
|
||||
|
||||
#pragma warning restore 67
|
||||
|
||||
public void SetDebugPacketLevel(int newDebug)
|
||||
|
@ -1570,6 +1572,11 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
|
|||
|
||||
}
|
||||
|
||||
public void SendAvatarInterestUpdate(IClientAPI client, uint wantmask, string wanttext, uint skillsmask, string skillstext, string languages)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void SendParcelDwellReply(int localID, UUID parcelID, float dwell)
|
||||
{
|
||||
|
||||
|
|
|
@ -1105,7 +1105,19 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
public void UpdatePositionAndVelocity()
|
||||
{
|
||||
// no lock; called from Simulate() -- if you call this from elsewhere, gotta lock or do Monitor.Enter/Exit!
|
||||
d.Vector3 vec = d.BodyGetPosition(Body);
|
||||
d.Vector3 vec;
|
||||
try
|
||||
{
|
||||
vec = d.BodyGetPosition(Body);
|
||||
}
|
||||
catch (NullReferenceException)
|
||||
{
|
||||
_parent_scene.BadCharacter(this);
|
||||
vec = new d.Vector3(_position.X, _position.Y, _position.Z);
|
||||
base.RaiseOutOfBounds(_position); // Tells ScenePresence that there's a problem!
|
||||
m_log.WarnFormat("[ODEPLUGIN]: Avatar Null reference for Avatar: {0}", m_name);
|
||||
}
|
||||
|
||||
|
||||
// kluge to keep things in bounds. ODE lets dead avatars drift away (they should be removed!)
|
||||
if (vec.X < 0.0f) vec.X = 0.0f;
|
||||
|
@ -1137,7 +1149,16 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
else
|
||||
{
|
||||
m_lastUpdateSent = false;
|
||||
try
|
||||
{
|
||||
vec = d.BodyGetLinearVel(Body);
|
||||
}
|
||||
catch (NullReferenceException)
|
||||
{
|
||||
vec.X = _velocity.X;
|
||||
vec.Y = _velocity.Y;
|
||||
vec.Z = _velocity.Z;
|
||||
}
|
||||
_velocity.X = (vec.X);
|
||||
_velocity.Y = (vec.Y);
|
||||
|
||||
|
|
|
@ -243,6 +243,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
private readonly HashSet<OdeCharacter> _taintedActors = new HashSet<OdeCharacter>();
|
||||
private readonly List<d.ContactGeom> _perloopContact = new List<d.ContactGeom>();
|
||||
private readonly List<PhysicsActor> _collisionEventPrim = new List<PhysicsActor>();
|
||||
private readonly HashSet<OdeCharacter> _badCharacter = new HashSet<OdeCharacter>();
|
||||
public Dictionary<IntPtr, String> geom_name_map = new Dictionary<IntPtr, String>();
|
||||
public Dictionary<IntPtr, PhysicsActor> actor_name_map = new Dictionary<IntPtr, PhysicsActor>();
|
||||
private bool m_NINJA_physics_joints_enabled = false;
|
||||
|
@ -1678,6 +1679,14 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
}
|
||||
}
|
||||
}
|
||||
public void BadCharacter(OdeCharacter chr)
|
||||
{
|
||||
lock (_badCharacter)
|
||||
{
|
||||
if (!_badCharacter.Contains(chr))
|
||||
_badCharacter.Add(chr);
|
||||
}
|
||||
}
|
||||
|
||||
public override void RemoveAvatar(PhysicsActor actor)
|
||||
{
|
||||
|
@ -2987,6 +2996,18 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
}
|
||||
}
|
||||
|
||||
lock (_badCharacter)
|
||||
{
|
||||
if (_badCharacter.Count > 0)
|
||||
{
|
||||
foreach (OdeCharacter chr in _badCharacter)
|
||||
{
|
||||
RemoveCharacter(chr);
|
||||
}
|
||||
_badCharacter.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
lock (_activeprims)
|
||||
{
|
||||
//if (timeStep < 0.2f)
|
||||
|
|
|
@ -353,15 +353,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
|||
// m_log.ErrorFormat("[Script] Unable to load script state from xml: {0}\n"+e.ToString(), xml);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ScenePresence presence = m_Engine.World.GetScenePresence(part.OwnerID);
|
||||
// else
|
||||
// {
|
||||
// ScenePresence presence = m_Engine.World.GetScenePresence(part.OwnerID);
|
||||
|
||||
if (presence != null && (!postOnRez))
|
||||
presence.ControllingClient.SendAgentAlertMessage("Compile successful", false);
|
||||
// if (presence != null && (!postOnRez))
|
||||
// presence.ControllingClient.SendAgentAlertMessage("Compile successful", false);
|
||||
|
||||
// // m_log.ErrorFormat("[Script] Unable to load script state, file not found");
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
public void Init()
|
||||
|
|
|
@ -604,9 +604,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
|
||||
if (warnings != null && warnings.Length != 0)
|
||||
{
|
||||
if (presence != null && (!postOnRez))
|
||||
presence.ControllingClient.SendAgentAlertMessage("Script saved with warnings, check debug window!", false);
|
||||
|
||||
foreach (string warning in warnings)
|
||||
{
|
||||
try
|
||||
|
@ -615,11 +612,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
string text = "Warning:\n" + warning;
|
||||
if (text.Length > 1000)
|
||||
text = text.Substring(0, 1000);
|
||||
if (!ShowScriptSaveResponse(item.OwnerID,
|
||||
assetID, text, true))
|
||||
{
|
||||
if (presence != null && (!postOnRez))
|
||||
presence.ControllingClient.SendAgentAlertMessage("Script saved with warnings, check debug window!", false);
|
||||
|
||||
World.SimChat(Utils.StringToBytes(text),
|
||||
ChatTypeEnum.DebugChannel, 2147483647,
|
||||
part.AbsolutePosition,
|
||||
part.Name, part.UUID, false);
|
||||
}
|
||||
}
|
||||
catch (Exception e2) // LEGIT: User Scripting
|
||||
{
|
||||
m_log.Error("[XEngine]: " +
|
||||
|
@ -634,8 +638,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (presence != null && (!postOnRez))
|
||||
presence.ControllingClient.SendAgentAlertMessage("Script saved with errors, check debug window!", false);
|
||||
try
|
||||
{
|
||||
// DISPLAY ERROR INWORLD
|
||||
|
@ -645,11 +647,17 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
string text = "Error compiling script '" + item.Name + "':\n" + e.Message.ToString();
|
||||
if (text.Length > 1000)
|
||||
text = text.Substring(0, 1000);
|
||||
if (!ShowScriptSaveResponse(item.OwnerID,
|
||||
assetID, text, false))
|
||||
{
|
||||
if (presence != null && (!postOnRez))
|
||||
presence.ControllingClient.SendAgentAlertMessage("Script saved with errors, check debug window!", false);
|
||||
World.SimChat(Utils.StringToBytes(text),
|
||||
ChatTypeEnum.DebugChannel, 2147483647,
|
||||
part.AbsolutePosition,
|
||||
part.Name, part.UUID, false);
|
||||
}
|
||||
}
|
||||
catch (Exception e2) // LEGIT: User Scripting
|
||||
{
|
||||
m_log.Error("[XEngine]: "+
|
||||
|
@ -732,6 +740,12 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
m_log.DebugFormat("[XEngine] Loaded script {0}.{1}, script UUID {2}, prim UUID {3} @ {4}",
|
||||
part.ParentGroup.RootPart.Name, item.Name, assetID, part.UUID, part.ParentGroup.RootPart.AbsolutePosition.ToString());
|
||||
|
||||
if (presence != null)
|
||||
{
|
||||
ShowScriptSaveResponse(item.OwnerID,
|
||||
assetID, "Compile successful", true);
|
||||
}
|
||||
|
||||
instance.AppDomain = appDomain;
|
||||
instance.LineMap = linemap;
|
||||
|
||||
|
@ -1250,5 +1264,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
|
||||
return instance.CanBeDeleted();
|
||||
}
|
||||
|
||||
private bool ShowScriptSaveResponse(UUID ownerID, UUID assetID, string text, bool compiled)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,3 +45,9 @@ MasterAvatarUUID = "00000000-0000-0000-0000-000000000000"
|
|||
; *
|
||||
|
||||
; ScopeID = "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
; *
|
||||
; * Product name (used in search from viewer 1.23
|
||||
; *
|
||||
|
||||
; RegionType = "Mainland"
|
||||
|
|
Loading…
Reference in New Issue