diff options
author | Kitto Flora | 2010-01-03 23:10:01 -0500 |
---|---|---|
committer | Kitto Flora | 2010-01-03 23:10:01 -0500 |
commit | 253e2ed699a899b74451ac51ed7875b3f98ffdd7 (patch) | |
tree | 8760330fd19b8ae367b79dd63408b33618c4eff2 /OpenSim/Region/Framework | |
parent | Vehicle Linear parameter adjustments (diff) | |
parent | Solve conflict (diff) | |
download | opensim-SC_OLD-253e2ed699a899b74451ac51ed7875b3f98ffdd7.zip opensim-SC_OLD-253e2ed699a899b74451ac51ed7875b3f98ffdd7.tar.gz opensim-SC_OLD-253e2ed699a899b74451ac51ed7875b3f98ffdd7.tar.bz2 opensim-SC_OLD-253e2ed699a899b74451ac51ed7875b3f98ffdd7.tar.xz |
Merge branch 'master' of ssh://3dhosting.de/var/git/careminster
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Interfaces/ILandChannel.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 341 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SimStatsReporter.cs | 22 |
7 files changed, 302 insertions, 88 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/ILandChannel.cs b/OpenSim/Region/Framework/Interfaces/ILandChannel.cs index 6fe6118..f71e31d 100644 --- a/OpenSim/Region/Framework/Interfaces/ILandChannel.cs +++ b/OpenSim/Region/Framework/Interfaces/ILandChannel.cs | |||
@@ -60,7 +60,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
60 | /// </summary> | 60 | /// </summary> |
61 | /// <param name="position"></param> | 61 | /// <param name="position"></param> |
62 | /// <returns></returns> | 62 | /// <returns></returns> |
63 | List<ILandObject> ParcelsNearPoint(Vector3 position); | 63 | List<ILandObject> ParcelsNearPoint(Vector3 position); |
64 | 64 | ||
65 | /// <summary> | 65 | /// <summary> |
66 | /// Get the parcel given the land's local id. | 66 | /// Get the parcel given the land's local id. |
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs index 1a8babc..991d60c 100644 --- a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs | |||
@@ -34,7 +34,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
34 | /// Interface to region archive functionality | 34 | /// Interface to region archive functionality |
35 | /// </summary> | 35 | /// </summary> |
36 | public interface IRegionArchiverModule | 36 | public interface IRegionArchiverModule |
37 | { | 37 | { |
38 | void HandleLoadOarConsoleCommand(string module, string[] cmdparams); | 38 | void HandleLoadOarConsoleCommand(string module, string[] cmdparams); |
39 | void HandleSaveOarConsoleCommand(string module, string[] cmdparams); | 39 | void HandleSaveOarConsoleCommand(string module, string[] cmdparams); |
40 | 40 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 2e34d1c..adf5f02 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -387,11 +387,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
387 | { | 387 | { |
388 | get { return StatsReporter.getLastReportedSimFPS(); } | 388 | get { return StatsReporter.getLastReportedSimFPS(); } |
389 | } | 389 | } |
390 | 390 | ||
391 | public float[] SimulatorStats | 391 | public float[] SimulatorStats |
392 | { | 392 | { |
393 | get { return StatsReporter.getLastReportedSimStats(); } | 393 | get { return StatsReporter.getLastReportedSimStats(); } |
394 | } | 394 | } |
395 | 395 | ||
396 | public string DefaultScriptEngine | 396 | public string DefaultScriptEngine |
397 | { | 397 | { |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index f8498c6..e63e8d9 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -412,6 +412,17 @@ namespace OpenSim.Region.Framework.Scenes | |||
412 | { | 412 | { |
413 | get { return true; } | 413 | get { return true; } |
414 | } | 414 | } |
415 | |||
416 | private bool m_passCollision; | ||
417 | public bool PassCollision | ||
418 | { | ||
419 | get { return m_passCollision; } | ||
420 | set | ||
421 | { | ||
422 | m_passCollision = value; | ||
423 | HasGroupChanged = true; | ||
424 | } | ||
425 | } | ||
415 | 426 | ||
416 | public bool IsSelected | 427 | public bool IsSelected |
417 | { | 428 | { |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 6b562e5..a14e3ad 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -140,6 +140,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
140 | 140 | ||
141 | [XmlIgnore] | 141 | [XmlIgnore] |
142 | public UUID FromItemID; | 142 | public UUID FromItemID; |
143 | |||
144 | [XmlIgnore] | ||
145 | private Dictionary<int, string> m_CollisionFilter = new Dictionary<int, string>(); | ||
143 | 146 | ||
144 | /// <value> | 147 | /// <value> |
145 | /// The UUID of the user inventory item from which this object was rezzed if this is a root part. | 148 | /// The UUID of the user inventory item from which this object was rezzed if this is a root part. |
@@ -457,6 +460,17 @@ namespace OpenSim.Region.Framework.Scenes | |||
457 | } | 460 | } |
458 | } | 461 | } |
459 | 462 | ||
463 | |||
464 | [XmlIgnore] | ||
465 | public Dictionary<int, string> CollisionFilter | ||
466 | { | ||
467 | get { return m_CollisionFilter; } | ||
468 | set | ||
469 | { | ||
470 | m_CollisionFilter = value; | ||
471 | } | ||
472 | } | ||
473 | |||
460 | public ulong RegionHandle | 474 | public ulong RegionHandle |
461 | { | 475 | { |
462 | get { return m_regionHandle; } | 476 | get { return m_regionHandle; } |
@@ -1885,18 +1899,49 @@ namespace OpenSim.Region.Framework.Scenes | |||
1885 | return; | 1899 | return; |
1886 | 1900 | ||
1887 | SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); | 1901 | SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); |
1902 | string data = ""; | ||
1888 | if (obj != null) | 1903 | if (obj != null) |
1889 | { | 1904 | { |
1890 | DetectedObject detobj = new DetectedObject(); | 1905 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) || m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) |
1891 | detobj.keyUUID = obj.UUID; | 1906 | { |
1892 | detobj.nameStr = obj.Name; | 1907 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); |
1893 | detobj.ownerUUID = obj._ownerID; | 1908 | //If it is 1, it is to accept ONLY collisions from this object |
1894 | detobj.posVector = obj.AbsolutePosition; | 1909 | if (found) |
1895 | detobj.rotQuat = obj.GetWorldRotation(); | 1910 | { |
1896 | detobj.velVector = obj.Velocity; | 1911 | DetectedObject detobj = new DetectedObject(); |
1897 | detobj.colliderType = 0; | 1912 | detobj.keyUUID = obj.UUID; |
1898 | detobj.groupUUID = obj._groupID; | 1913 | detobj.nameStr = obj.Name; |
1899 | colliding.Add(detobj); | 1914 | detobj.ownerUUID = obj._ownerID; |
1915 | detobj.posVector = obj.AbsolutePosition; | ||
1916 | detobj.rotQuat = obj.GetWorldRotation(); | ||
1917 | detobj.velVector = obj.Velocity; | ||
1918 | detobj.colliderType = 0; | ||
1919 | detobj.groupUUID = obj._groupID; | ||
1920 | colliding.Add(detobj); | ||
1921 | } | ||
1922 | //If it is 0, it is to not accept collisions from this object | ||
1923 | else | ||
1924 | { | ||
1925 | } | ||
1926 | } | ||
1927 | else | ||
1928 | { | ||
1929 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | ||
1930 | //If it is 1, it is to accept ONLY collisions from this object, so this other object will not work | ||
1931 | if (found) | ||
1932 | { | ||
1933 | DetectedObject detobj = new DetectedObject(); | ||
1934 | detobj.keyUUID = obj.UUID; | ||
1935 | detobj.nameStr = obj.Name; | ||
1936 | detobj.ownerUUID = obj._ownerID; | ||
1937 | detobj.posVector = obj.AbsolutePosition; | ||
1938 | detobj.rotQuat = obj.GetWorldRotation(); | ||
1939 | detobj.velVector = obj.Velocity; | ||
1940 | detobj.colliderType = 0; | ||
1941 | detobj.groupUUID = obj._groupID; | ||
1942 | colliding.Add(detobj); | ||
1943 | } | ||
1944 | } | ||
1900 | } | 1945 | } |
1901 | else | 1946 | else |
1902 | { | 1947 | { |
@@ -1908,16 +1953,47 @@ namespace OpenSim.Region.Framework.Scenes | |||
1908 | 1953 | ||
1909 | if (av.LocalId == localId) | 1954 | if (av.LocalId == localId) |
1910 | { | 1955 | { |
1911 | DetectedObject detobj = new DetectedObject(); | 1956 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) || m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) |
1912 | detobj.keyUUID = av.UUID; | 1957 | { |
1913 | detobj.nameStr = av.ControllingClient.Name; | 1958 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); |
1914 | detobj.ownerUUID = av.UUID; | 1959 | //If it is 1, it is to accept ONLY collisions from this avatar |
1915 | detobj.posVector = av.AbsolutePosition; | 1960 | if (found) |
1916 | detobj.rotQuat = av.Rotation; | 1961 | { |
1917 | detobj.velVector = av.Velocity; | 1962 | DetectedObject detobj = new DetectedObject(); |
1918 | detobj.colliderType = 0; | 1963 | detobj.keyUUID = av.UUID; |
1919 | detobj.groupUUID = av.ControllingClient.ActiveGroupId; | 1964 | detobj.nameStr = av.ControllingClient.Name; |
1920 | colliding.Add(detobj); | 1965 | detobj.ownerUUID = av.UUID; |
1966 | detobj.posVector = av.AbsolutePosition; | ||
1967 | detobj.rotQuat = av.Rotation; | ||
1968 | detobj.velVector = av.Velocity; | ||
1969 | detobj.colliderType = 0; | ||
1970 | detobj.groupUUID = av.ControllingClient.ActiveGroupId; | ||
1971 | colliding.Add(detobj); | ||
1972 | } | ||
1973 | //If it is 0, it is to not accept collisions from this avatar | ||
1974 | else | ||
1975 | { | ||
1976 | } | ||
1977 | } | ||
1978 | else | ||
1979 | { | ||
1980 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | ||
1981 | //If it is 1, it is to accept ONLY collisions from this avatar, so this other avatar will not work | ||
1982 | if (found) | ||
1983 | { | ||
1984 | DetectedObject detobj = new DetectedObject(); | ||
1985 | detobj.keyUUID = av.UUID; | ||
1986 | detobj.nameStr = av.ControllingClient.Name; | ||
1987 | detobj.ownerUUID = av.UUID; | ||
1988 | detobj.posVector = av.AbsolutePosition; | ||
1989 | detobj.rotQuat = av.Rotation; | ||
1990 | detobj.velVector = av.Velocity; | ||
1991 | detobj.colliderType = 0; | ||
1992 | detobj.groupUUID = av.ControllingClient.ActiveGroupId; | ||
1993 | colliding.Add(detobj); | ||
1994 | } | ||
1995 | } | ||
1996 | |||
1921 | } | 1997 | } |
1922 | } | 1998 | } |
1923 | } | 1999 | } |
@@ -1931,7 +2007,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
1931 | 2007 | ||
1932 | if (m_parentGroup.Scene == null) | 2008 | if (m_parentGroup.Scene == null) |
1933 | return; | 2009 | return; |
1934 | 2010 | if (m_parentGroup.PassCollision == true) | |
2011 | { | ||
2012 | //TODO: Add pass to root prim! | ||
2013 | } | ||
1935 | m_parentGroup.Scene.EventManager.TriggerScriptCollidingStart(LocalId, StartCollidingMessage); | 2014 | m_parentGroup.Scene.EventManager.TriggerScriptCollidingStart(LocalId, StartCollidingMessage); |
1936 | } | 2015 | } |
1937 | } | 2016 | } |
@@ -1956,39 +2035,101 @@ namespace OpenSim.Region.Framework.Scenes | |||
1956 | return; | 2035 | return; |
1957 | 2036 | ||
1958 | SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); | 2037 | SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); |
2038 | string data = ""; | ||
1959 | if (obj != null) | 2039 | if (obj != null) |
1960 | { | 2040 | { |
1961 | DetectedObject detobj = new DetectedObject(); | 2041 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) || m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) |
1962 | detobj.keyUUID = obj.UUID; | 2042 | { |
1963 | detobj.nameStr = obj.Name; | 2043 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); |
1964 | detobj.ownerUUID = obj._ownerID; | 2044 | //If it is 1, it is to accept ONLY collisions from this object |
1965 | detobj.posVector = obj.AbsolutePosition; | 2045 | if (found) |
1966 | detobj.rotQuat = obj.GetWorldRotation(); | 2046 | { |
1967 | detobj.velVector = obj.Velocity; | 2047 | DetectedObject detobj = new DetectedObject(); |
1968 | detobj.colliderType = 0; | 2048 | detobj.keyUUID = obj.UUID; |
1969 | detobj.groupUUID = obj._groupID; | 2049 | detobj.nameStr = obj.Name; |
1970 | colliding.Add(detobj); | 2050 | detobj.ownerUUID = obj._ownerID; |
2051 | detobj.posVector = obj.AbsolutePosition; | ||
2052 | detobj.rotQuat = obj.GetWorldRotation(); | ||
2053 | detobj.velVector = obj.Velocity; | ||
2054 | detobj.colliderType = 0; | ||
2055 | detobj.groupUUID = obj._groupID; | ||
2056 | colliding.Add(detobj); | ||
2057 | } | ||
2058 | //If it is 0, it is to not accept collisions from this object | ||
2059 | else | ||
2060 | { | ||
2061 | } | ||
2062 | } | ||
2063 | else | ||
2064 | { | ||
2065 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | ||
2066 | //If it is 1, it is to accept ONLY collisions from this object, so this other object will not work | ||
2067 | if (found) | ||
2068 | { | ||
2069 | DetectedObject detobj = new DetectedObject(); | ||
2070 | detobj.keyUUID = obj.UUID; | ||
2071 | detobj.nameStr = obj.Name; | ||
2072 | detobj.ownerUUID = obj._ownerID; | ||
2073 | detobj.posVector = obj.AbsolutePosition; | ||
2074 | detobj.rotQuat = obj.GetWorldRotation(); | ||
2075 | detobj.velVector = obj.Velocity; | ||
2076 | detobj.colliderType = 0; | ||
2077 | detobj.groupUUID = obj._groupID; | ||
2078 | colliding.Add(detobj); | ||
2079 | } | ||
2080 | } | ||
1971 | } | 2081 | } |
1972 | else | 2082 | else |
1973 | { | 2083 | { |
1974 | ScenePresence[] avlist = m_parentGroup.Scene.GetScenePresences(); | 2084 | ScenePresence[] avlist = m_parentGroup.Scene.GetScenePresences(); |
1975 | 2085 | ||
1976 | for (int i = 0; i < avlist.Length; i++) | 2086 | for (int i = 0; i < avlist.Length; i++) |
1977 | { | 2087 | { |
1978 | ScenePresence av = avlist[i]; | 2088 | ScenePresence av = avlist[i]; |
1979 | 2089 | ||
1980 | if (av.LocalId == localId) | 2090 | if (av.LocalId == localId) |
1981 | { | 2091 | { |
1982 | DetectedObject detobj = new DetectedObject(); | 2092 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) || m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) |
1983 | detobj.keyUUID = av.UUID; | 2093 | { |
1984 | detobj.nameStr = av.Name; | 2094 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); |
1985 | detobj.ownerUUID = av.UUID; | 2095 | //If it is 1, it is to accept ONLY collisions from this avatar |
1986 | detobj.posVector = av.AbsolutePosition; | 2096 | if (found) |
1987 | detobj.rotQuat = av.Rotation; | 2097 | { |
1988 | detobj.velVector = av.Velocity; | 2098 | DetectedObject detobj = new DetectedObject(); |
1989 | detobj.colliderType = 0; | 2099 | detobj.keyUUID = av.UUID; |
1990 | detobj.groupUUID = av.ControllingClient.ActiveGroupId; | 2100 | detobj.nameStr = av.ControllingClient.Name; |
1991 | colliding.Add(detobj); | 2101 | detobj.ownerUUID = av.UUID; |
2102 | detobj.posVector = av.AbsolutePosition; | ||
2103 | detobj.rotQuat = av.Rotation; | ||
2104 | detobj.velVector = av.Velocity; | ||
2105 | detobj.colliderType = 0; | ||
2106 | detobj.groupUUID = av.ControllingClient.ActiveGroupId; | ||
2107 | colliding.Add(detobj); | ||
2108 | } | ||
2109 | //If it is 0, it is to not accept collisions from this avatar | ||
2110 | else | ||
2111 | { | ||
2112 | } | ||
2113 | } | ||
2114 | else | ||
2115 | { | ||
2116 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | ||
2117 | //If it is 1, it is to accept ONLY collisions from this avatar, so this other avatar will not work | ||
2118 | if (found) | ||
2119 | { | ||
2120 | DetectedObject detobj = new DetectedObject(); | ||
2121 | detobj.keyUUID = av.UUID; | ||
2122 | detobj.nameStr = av.ControllingClient.Name; | ||
2123 | detobj.ownerUUID = av.UUID; | ||
2124 | detobj.posVector = av.AbsolutePosition; | ||
2125 | detobj.rotQuat = av.Rotation; | ||
2126 | detobj.velVector = av.Velocity; | ||
2127 | detobj.colliderType = 0; | ||
2128 | detobj.groupUUID = av.ControllingClient.ActiveGroupId; | ||
2129 | colliding.Add(detobj); | ||
2130 | } | ||
2131 | } | ||
2132 | |||
1992 | } | 2133 | } |
1993 | } | 2134 | } |
1994 | } | 2135 | } |
@@ -2025,18 +2166,49 @@ namespace OpenSim.Region.Framework.Scenes | |||
2025 | if (m_parentGroup.Scene == null) | 2166 | if (m_parentGroup.Scene == null) |
2026 | return; | 2167 | return; |
2027 | SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); | 2168 | SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); |
2169 | string data = ""; | ||
2028 | if (obj != null) | 2170 | if (obj != null) |
2029 | { | 2171 | { |
2030 | DetectedObject detobj = new DetectedObject(); | 2172 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) || m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) |
2031 | detobj.keyUUID = obj.UUID; | 2173 | { |
2032 | detobj.nameStr = obj.Name; | 2174 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); |
2033 | detobj.ownerUUID = obj._ownerID; | 2175 | //If it is 1, it is to accept ONLY collisions from this object |
2034 | detobj.posVector = obj.AbsolutePosition; | 2176 | if (found) |
2035 | detobj.rotQuat = obj.GetWorldRotation(); | 2177 | { |
2036 | detobj.velVector = obj.Velocity; | 2178 | DetectedObject detobj = new DetectedObject(); |
2037 | detobj.colliderType = 0; | 2179 | detobj.keyUUID = obj.UUID; |
2038 | detobj.groupUUID = obj._groupID; | 2180 | detobj.nameStr = obj.Name; |
2039 | colliding.Add(detobj); | 2181 | detobj.ownerUUID = obj._ownerID; |
2182 | detobj.posVector = obj.AbsolutePosition; | ||
2183 | detobj.rotQuat = obj.GetWorldRotation(); | ||
2184 | detobj.velVector = obj.Velocity; | ||
2185 | detobj.colliderType = 0; | ||
2186 | detobj.groupUUID = obj._groupID; | ||
2187 | colliding.Add(detobj); | ||
2188 | } | ||
2189 | //If it is 0, it is to not accept collisions from this object | ||
2190 | else | ||
2191 | { | ||
2192 | } | ||
2193 | } | ||
2194 | else | ||
2195 | { | ||
2196 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | ||
2197 | //If it is 1, it is to accept ONLY collisions from this object, so this other object will not work | ||
2198 | if (found) | ||
2199 | { | ||
2200 | DetectedObject detobj = new DetectedObject(); | ||
2201 | detobj.keyUUID = obj.UUID; | ||
2202 | detobj.nameStr = obj.Name; | ||
2203 | detobj.ownerUUID = obj._ownerID; | ||
2204 | detobj.posVector = obj.AbsolutePosition; | ||
2205 | detobj.rotQuat = obj.GetWorldRotation(); | ||
2206 | detobj.velVector = obj.Velocity; | ||
2207 | detobj.colliderType = 0; | ||
2208 | detobj.groupUUID = obj._groupID; | ||
2209 | colliding.Add(detobj); | ||
2210 | } | ||
2211 | } | ||
2040 | } | 2212 | } |
2041 | else | 2213 | else |
2042 | { | 2214 | { |
@@ -2048,16 +2220,47 @@ namespace OpenSim.Region.Framework.Scenes | |||
2048 | 2220 | ||
2049 | if (av.LocalId == localId) | 2221 | if (av.LocalId == localId) |
2050 | { | 2222 | { |
2051 | DetectedObject detobj = new DetectedObject(); | 2223 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) || m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) |
2052 | detobj.keyUUID = av.UUID; | 2224 | { |
2053 | detobj.nameStr = av.Name; | 2225 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); |
2054 | detobj.ownerUUID = av.UUID; | 2226 | //If it is 1, it is to accept ONLY collisions from this avatar |
2055 | detobj.posVector = av.AbsolutePosition; | 2227 | if (found) |
2056 | detobj.rotQuat = av.Rotation; | 2228 | { |
2057 | detobj.velVector = av.Velocity; | 2229 | DetectedObject detobj = new DetectedObject(); |
2058 | detobj.colliderType = 0; | 2230 | detobj.keyUUID = av.UUID; |
2059 | detobj.groupUUID = av.ControllingClient.ActiveGroupId; | 2231 | detobj.nameStr = av.ControllingClient.Name; |
2060 | colliding.Add(detobj); | 2232 | detobj.ownerUUID = av.UUID; |
2233 | detobj.posVector = av.AbsolutePosition; | ||
2234 | detobj.rotQuat = av.Rotation; | ||
2235 | detobj.velVector = av.Velocity; | ||
2236 | detobj.colliderType = 0; | ||
2237 | detobj.groupUUID = av.ControllingClient.ActiveGroupId; | ||
2238 | colliding.Add(detobj); | ||
2239 | } | ||
2240 | //If it is 0, it is to not accept collisions from this avatar | ||
2241 | else | ||
2242 | { | ||
2243 | } | ||
2244 | } | ||
2245 | else | ||
2246 | { | ||
2247 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | ||
2248 | //If it is 1, it is to accept ONLY collisions from this avatar, so this other avatar will not work | ||
2249 | if (found) | ||
2250 | { | ||
2251 | DetectedObject detobj = new DetectedObject(); | ||
2252 | detobj.keyUUID = av.UUID; | ||
2253 | detobj.nameStr = av.ControllingClient.Name; | ||
2254 | detobj.ownerUUID = av.UUID; | ||
2255 | detobj.posVector = av.AbsolutePosition; | ||
2256 | detobj.rotQuat = av.Rotation; | ||
2257 | detobj.velVector = av.Velocity; | ||
2258 | detobj.colliderType = 0; | ||
2259 | detobj.groupUUID = av.ControllingClient.ActiveGroupId; | ||
2260 | colliding.Add(detobj); | ||
2261 | } | ||
2262 | } | ||
2263 | |||
2061 | } | 2264 | } |
2062 | } | 2265 | } |
2063 | } | 2266 | } |
@@ -2685,6 +2888,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
2685 | ScheduleFullUpdate(); | 2888 | ScheduleFullUpdate(); |
2686 | } | 2889 | } |
2687 | 2890 | ||
2891 | public void StopLookAt() | ||
2892 | { | ||
2893 | m_parentGroup.stopLookAt(); | ||
2894 | |||
2895 | m_parentGroup.ScheduleGroupForTerseUpdate(); | ||
2896 | } | ||
2897 | |||
2688 | /// <summary> | 2898 | /// <summary> |
2689 | /// Set the text displayed for this part. | 2899 | /// Set the text displayed for this part. |
2690 | /// </summary> | 2900 | /// </summary> |
@@ -2700,13 +2910,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2700 | SetText(text); | 2910 | SetText(text); |
2701 | } | 2911 | } |
2702 | 2912 | ||
2703 | public void StopLookAt() | ||
2704 | { | ||
2705 | m_parentGroup.stopLookAt(); | ||
2706 | |||
2707 | m_parentGroup.ScheduleGroupForTerseUpdate(); | ||
2708 | } | ||
2709 | |||
2710 | public void StopMoveToTarget() | 2913 | public void StopMoveToTarget() |
2711 | { | 2914 | { |
2712 | m_parentGroup.stopMoveToTarget(); | 2915 | m_parentGroup.stopMoveToTarget(); |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index c3bc96a..f36c1a9 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1985,7 +1985,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1985 | if (collisionPoint.ApproxEquals(m_requestedSitOffset + part.AbsolutePosition, 0.2f)) | 1985 | if (collisionPoint.ApproxEquals(m_requestedSitOffset + part.AbsolutePosition, 0.2f)) |
1986 | { | 1986 | { |
1987 | SitRaycastFindEdge(collisionPoint, normal); | 1987 | SitRaycastFindEdge(collisionPoint, normal); |
1988 | m_log.DebugFormat("[SIT]: Raycast Avatar Position succeeded at point: {0}, normal:{1}", collisionPoint, normal ); | 1988 | m_log.DebugFormat("[SIT]: Raycast Avatar Position succeeded at point: {0}, normal:{1}", collisionPoint, normal); |
1989 | } | 1989 | } |
1990 | else | 1990 | else |
1991 | { | 1991 | { |
diff --git a/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs b/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs index e368c2a..fd23294 100644 --- a/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs +++ b/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs | |||
@@ -82,7 +82,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
82 | private int m_fps = 0; | 82 | private int m_fps = 0; |
83 | // saved last reported value so there is something available for llGetRegionFPS | 83 | // saved last reported value so there is something available for llGetRegionFPS |
84 | private float lastReportedSimFPS = 0; | 84 | private float lastReportedSimFPS = 0; |
85 | private float[] lastReportedSimStats = new float[21]; | 85 | private float[] lastReportedSimStats = new float[21]; |
86 | private float m_pfps = 0; | 86 | private float m_pfps = 0; |
87 | private int m_agentUpdates = 0; | 87 | private int m_agentUpdates = 0; |
88 | 88 | ||
@@ -263,11 +263,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
263 | 263 | ||
264 | sb[20].StatID = (uint)Stats.ScriptLinesPerSecond; | 264 | sb[20].StatID = (uint)Stats.ScriptLinesPerSecond; |
265 | sb[20].StatValue = m_scriptLinesPerSecond / statsUpdateFactor; | 265 | sb[20].StatValue = m_scriptLinesPerSecond / statsUpdateFactor; |
266 | 266 | ||
267 | for (int i = 0; i < 21; i++) | 267 | for (int i = 0; i < 21; i++) |
268 | { | 268 | { |
269 | lastReportedSimStats[i] = sb[i].StatValue; | 269 | lastReportedSimStats[i] = sb[i].StatValue; |
270 | } | 270 | } |
271 | 271 | ||
272 | SimStats simStats | 272 | SimStats simStats |
273 | = new SimStats( | 273 | = new SimStats( |
@@ -447,11 +447,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
447 | { | 447 | { |
448 | return lastReportedSimFPS; | 448 | return lastReportedSimFPS; |
449 | } | 449 | } |
450 | 450 | ||
451 | public float[] getLastReportedSimStats() | 451 | public float[] getLastReportedSimStats() |
452 | { | 452 | { |
453 | return lastReportedSimStats; | 453 | return lastReportedSimStats; |
454 | } | 454 | } |
455 | 455 | ||
456 | public void AddPacketsStats(int inPackets, int outPackets, int unAckedBytes) | 456 | public void AddPacketsStats(int inPackets, int outPackets, int unAckedBytes) |
457 | { | 457 | { |