diff options
3 files changed, 35 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs b/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs index 43953a7..8699800 100644 --- a/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs +++ b/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs | |||
@@ -129,6 +129,11 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
129 | part.ScheduleFullUpdate(); | 129 | part.ScheduleFullUpdate(); |
130 | } | 130 | } |
131 | 131 | ||
132 | public void ClearMediaEntry(SceneObjectPart part, int face) | ||
133 | { | ||
134 | SetMediaEntry(part, face, null); | ||
135 | } | ||
136 | |||
132 | /// <summary> | 137 | /// <summary> |
133 | /// Sets or gets per face media textures. | 138 | /// Sets or gets per face media textures. |
134 | /// </summary> | 139 | /// </summary> |
diff --git a/OpenSim/Region/Framework/Interfaces/IMoapModule.cs b/OpenSim/Region/Framework/Interfaces/IMoapModule.cs index 31bb6d8..24b6860 100644 --- a/OpenSim/Region/Framework/Interfaces/IMoapModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IMoapModule.cs | |||
@@ -53,5 +53,15 @@ namespace OpenSim.Region.Framework.Interfaces | |||
53 | /// <param name="face"></param> | 53 | /// <param name="face"></param> |
54 | /// <param name="me"></param> | 54 | /// <param name="me"></param> |
55 | void SetMediaEntry(SceneObjectPart part, int face, MediaEntry me); | 55 | void SetMediaEntry(SceneObjectPart part, int face, MediaEntry me); |
56 | |||
57 | /// <summary> | ||
58 | /// Clear the media entry for a given prim face. | ||
59 | /// </summary> | ||
60 | /// | ||
61 | /// This is the equivalent of setting a media entry of null | ||
62 | /// | ||
63 | /// <param name="part"></param> | ||
64 | /// <param name="face">/param> | ||
65 | void ClearMediaEntry(SceneObjectPart part, int face); | ||
56 | } | 66 | } |
57 | } \ No newline at end of file | 67 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index f5089aa..8903c3b 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -8023,6 +8023,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8023 | return ScriptBaseClass.LSL_STATUS_OK; | 8023 | return ScriptBaseClass.LSL_STATUS_OK; |
8024 | } | 8024 | } |
8025 | 8025 | ||
8026 | public LSL_Integer llClearPrimMedia(LSL_Integer face) | ||
8027 | { | ||
8028 | m_host.AddScriptLPS(1); | ||
8029 | ScriptSleep(1000); | ||
8030 | |||
8031 | // LSL Spec http://wiki.secondlife.com/wiki/LlClearPrimMedia says to fail silently if face is invalid | ||
8032 | // Assuming silently fail means sending back LSL_STATUS_OK. Ideally, need to check this. | ||
8033 | // FIXME: Don't perform the media check directly | ||
8034 | if (face < 0 || face > m_host.GetNumberOfSides() - 1) | ||
8035 | return ScriptBaseClass.LSL_STATUS_OK; | ||
8036 | |||
8037 | IMoapModule module = m_ScriptEngine.World.RequestModuleInterface<IMoapModule>(); | ||
8038 | if (null == module) | ||
8039 | throw new Exception("Media on a prim functions not available"); | ||
8040 | |||
8041 | module.ClearMediaEntry(m_host, face); | ||
8042 | |||
8043 | return ScriptBaseClass.LSL_STATUS_OK; | ||
8044 | } | ||
8045 | |||
8026 | // <remarks> | 8046 | // <remarks> |
8027 | // <para> | 8047 | // <para> |
8028 | // The .NET definition of base 64 is: | 8048 | // The .NET definition of base 64 is: |