diff options
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index faacc76..cf3270e 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -1305,6 +1305,36 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1305 | } | 1305 | } |
1306 | } | 1306 | } |
1307 | 1307 | ||
1308 | public void SetTexGen(SceneObjectPart part, int face,int style) | ||
1309 | { | ||
1310 | Primitive.TextureEntry tex = part.Shape.Textures; | ||
1311 | MappingType textype; | ||
1312 | textype = MappingType.Default; | ||
1313 | if (style == (int)ScriptBaseClass.PRIM_TEXGEN_PLANAR) | ||
1314 | textype = MappingType.Planar; | ||
1315 | |||
1316 | if (face >= 0 && face < GetNumberOfSides(part)) | ||
1317 | { | ||
1318 | tex.CreateFace((uint) face); | ||
1319 | tex.FaceTextures[face].TexMapType = textype; | ||
1320 | part.UpdateTexture(tex); | ||
1321 | return; | ||
1322 | } | ||
1323 | else if (face == ScriptBaseClass.ALL_SIDES) | ||
1324 | { | ||
1325 | for (uint i = 0; i < GetNumberOfSides(part); i++) | ||
1326 | { | ||
1327 | if (tex.FaceTextures[i] != null) | ||
1328 | { | ||
1329 | tex.FaceTextures[i].TexMapType = textype; | ||
1330 | } | ||
1331 | tex.DefaultTexture.TexMapType = textype; | ||
1332 | } | ||
1333 | part.UpdateTexture(tex); | ||
1334 | return; | ||
1335 | } | ||
1336 | } | ||
1337 | |||
1308 | public void SetGlow(SceneObjectPart part, int face, float glow) | 1338 | public void SetGlow(SceneObjectPart part, int face, float glow) |
1309 | { | 1339 | { |
1310 | Primitive.TextureEntry tex = part.Shape.Textures; | 1340 | Primitive.TextureEntry tex = part.Shape.Textures; |
@@ -6822,6 +6852,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6822 | 6852 | ||
6823 | part.ScriptSetTemporaryStatus(tempOnRez); | 6853 | part.ScriptSetTemporaryStatus(tempOnRez); |
6824 | break; | 6854 | break; |
6855 | |||
6856 | case (int)ScriptBaseClass.PRIM_TEXGEN: | ||
6857 | if (remain < 2) | ||
6858 | return; | ||
6859 | //face,type | ||
6860 | face = rules.GetLSLIntegerItem(idx++); | ||
6861 | int style = rules.GetLSLIntegerItem(idx++); | ||
6862 | SetTexGen(part, face, style); | ||
6863 | break; | ||
6825 | } | 6864 | } |
6826 | } | 6865 | } |
6827 | } | 6866 | } |