diff options
-rw-r--r-- | OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 2b06e3d..103ffff 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -1161,6 +1161,106 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1161 | } | 1161 | } |
1162 | } | 1162 | } |
1163 | 1163 | ||
1164 | public void SetGlow(SceneObjectPart part, int face, float glow) | ||
1165 | { | ||
1166 | LLObject.TextureEntry tex = part.Shape.Textures; | ||
1167 | if (face > -1) | ||
1168 | { | ||
1169 | tex.CreateFace((uint)face); | ||
1170 | tex.FaceTextures[face].Glow = glow; | ||
1171 | part.UpdateTexture(tex); | ||
1172 | return; | ||
1173 | } | ||
1174 | else if (face == -1) | ||
1175 | { | ||
1176 | for (uint i = 0; i < 32; i++) | ||
1177 | { | ||
1178 | if (tex.FaceTextures[i] != null) | ||
1179 | { | ||
1180 | tex.FaceTextures[i].Glow = glow; | ||
1181 | } | ||
1182 | tex.DefaultTexture.Glow = glow; | ||
1183 | } | ||
1184 | part.UpdateTexture(tex); | ||
1185 | return; | ||
1186 | } | ||
1187 | } | ||
1188 | |||
1189 | public void SetShiny(SceneObjectPart part, int face, int shiny, Bumpiness bump) | ||
1190 | { | ||
1191 | |||
1192 | Shininess sval = new Shininess(); | ||
1193 | |||
1194 | switch (shiny) | ||
1195 | { | ||
1196 | case 0: | ||
1197 | sval = Shininess.None; | ||
1198 | break; | ||
1199 | case 1: | ||
1200 | sval = Shininess.Low; | ||
1201 | break; | ||
1202 | case 2: | ||
1203 | sval = Shininess.Medium; | ||
1204 | break; | ||
1205 | case 3: | ||
1206 | sval = Shininess.High; | ||
1207 | break; | ||
1208 | default: | ||
1209 | sval = Shininess.None; | ||
1210 | break; | ||
1211 | } | ||
1212 | |||
1213 | LLObject.TextureEntry tex = part.Shape.Textures; | ||
1214 | if (face > -1) | ||
1215 | { | ||
1216 | tex.CreateFace((uint)face); | ||
1217 | tex.FaceTextures[face].Shiny = sval; | ||
1218 | tex.FaceTextures[face].Bump = bump; | ||
1219 | part.UpdateTexture(tex); | ||
1220 | return; | ||
1221 | } | ||
1222 | else if (face == -1) | ||
1223 | { | ||
1224 | for (uint i = 0; i < 32; i++) | ||
1225 | { | ||
1226 | if (tex.FaceTextures[i] != null) | ||
1227 | { | ||
1228 | tex.FaceTextures[i].Shiny = sval; | ||
1229 | tex.FaceTextures[i].Bump = bump; ; | ||
1230 | } | ||
1231 | tex.DefaultTexture.Shiny = sval; | ||
1232 | tex.DefaultTexture.Bump = bump; | ||
1233 | } | ||
1234 | part.UpdateTexture(tex); | ||
1235 | return; | ||
1236 | } | ||
1237 | } | ||
1238 | |||
1239 | public void SetFullBright(SceneObjectPart part, int face, bool bright) | ||
1240 | { | ||
1241 | LLObject.TextureEntry tex = part.Shape.Textures; | ||
1242 | if (face > -1) | ||
1243 | { | ||
1244 | tex.CreateFace((uint)face); | ||
1245 | tex.FaceTextures[face].Fullbright = bright; | ||
1246 | part.UpdateTexture(tex); | ||
1247 | return; | ||
1248 | } | ||
1249 | else if (face == -1) | ||
1250 | { | ||
1251 | for (uint i = 0; i < 32; i++) | ||
1252 | { | ||
1253 | if (tex.FaceTextures[i] != null) | ||
1254 | { | ||
1255 | tex.FaceTextures[i].Fullbright = bright; | ||
1256 | } | ||
1257 | } | ||
1258 | tex.DefaultTexture.Fullbright = bright; | ||
1259 | part.UpdateTexture(tex); | ||
1260 | return; | ||
1261 | } | ||
1262 | } | ||
1263 | |||
1164 | public double llGetAlpha(int face) | 1264 | public double llGetAlpha(int face) |
1165 | { | 1265 | { |
1166 | m_host.AddScriptLPS(1); | 1266 | m_host.AddScriptLPS(1); |
@@ -5773,6 +5873,80 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5773 | SetPointLight(part, (light == 1), lightcolor, intensity, radius, falloff); | 5873 | SetPointLight(part, (light == 1), lightcolor, intensity, radius, falloff); |
5774 | 5874 | ||
5775 | break; | 5875 | break; |
5876 | case (int)BuiltIn_Commands_BaseClass.PRIM_GLOW: | ||
5877 | if (remain < 2) | ||
5878 | return; | ||
5879 | face = Convert.ToInt32(rules.Data[idx++]); | ||
5880 | float glow = (float)Convert.ToDouble(rules.Data[idx++]); | ||
5881 | |||
5882 | SetGlow(part, face, glow); | ||
5883 | |||
5884 | break; | ||
5885 | case (int)BuiltIn_Commands_BaseClass.PRIM_BUMP_SHINY: | ||
5886 | if (remain < 3) | ||
5887 | return; | ||
5888 | face = Convert.ToInt32(rules.Data[idx++]); | ||
5889 | int shiny = Convert.ToInt32(rules.Data[idx++]); | ||
5890 | Bumpiness bump = (Bumpiness)Convert.ToByte(rules.Data[idx++]); | ||
5891 | |||
5892 | SetShiny(part, face, shiny, bump); | ||
5893 | |||
5894 | break; | ||
5895 | case (int)BuiltIn_Commands_BaseClass.PRIM_FULLBRIGHT: | ||
5896 | if (remain < 2) | ||
5897 | return; | ||
5898 | face = Convert.ToInt32(rules.Data[idx++]); | ||
5899 | string bv = rules.Data[idx++].ToString(); | ||
5900 | bool st; | ||
5901 | if (bv.Equals("1")) | ||
5902 | st = true; | ||
5903 | else | ||
5904 | st = false; | ||
5905 | |||
5906 | SetFullBright(part, face, st); | ||
5907 | break; | ||
5908 | case (int)BuiltIn_Commands_BaseClass.PRIM_MATERIAL: | ||
5909 | if (remain < 1) | ||
5910 | return; | ||
5911 | if (part != null) | ||
5912 | { | ||
5913 | /* Unhandled at this time - sends "Unhandled" message | ||
5914 | will enable when available | ||
5915 | byte material = (byte)Convert.ToByte( rules.Data[idx++]); | ||
5916 | part.Material = material; | ||
5917 | */ | ||
5918 | return; | ||
5919 | } | ||
5920 | break; | ||
5921 | case (int)BuiltIn_Commands_BaseClass.PRIM_PHANTOM: | ||
5922 | if (remain < 1) | ||
5923 | return; | ||
5924 | |||
5925 | string ph = rules.Data[idx++].ToString(); | ||
5926 | bool phantom; | ||
5927 | |||
5928 | if (ph.Equals("1")) | ||
5929 | phantom = true; | ||
5930 | else | ||
5931 | phantom = false; | ||
5932 | |||
5933 | part.ScriptSetPhantomStatus(phantom); | ||
5934 | part.ScheduleFullUpdate(); | ||
5935 | break; | ||
5936 | case (int)BuiltIn_Commands_BaseClass.PRIM_PHYSICS: | ||
5937 | if (remain < 1) | ||
5938 | return; | ||
5939 | string phy = rules.Data[idx++].ToString(); | ||
5940 | bool physics; | ||
5941 | |||
5942 | if (phy.Equals("1")) | ||
5943 | physics = true; | ||
5944 | else | ||
5945 | physics = false; | ||
5946 | |||
5947 | m_host.ScriptSetPhysicsStatus(physics); | ||
5948 | part.ScheduleFullUpdate(); | ||
5949 | break; | ||
5776 | } | 5950 | } |
5777 | } | 5951 | } |
5778 | } | 5952 | } |