diff options
author | Adam Frisby | 2009-04-09 14:51:18 +0000 |
---|---|---|
committer | Adam Frisby | 2009-04-09 14:51:18 +0000 |
commit | 8ee81f98ea093d6bae70ba493a9d11a4ce576622 (patch) | |
tree | f6e5395b81f502657c428c8084c1cc32c84cb070 | |
parent | * Implements IGraphics interface for MRM Scripting. (diff) | |
download | opensim-SC_OLD-8ee81f98ea093d6bae70ba493a9d11a4ce576622.zip opensim-SC_OLD-8ee81f98ea093d6bae70ba493a9d11a4ce576622.tar.gz opensim-SC_OLD-8ee81f98ea093d6bae70ba493a9d11a4ce576622.tar.bz2 opensim-SC_OLD-8ee81f98ea093d6bae70ba493a9d11a4ce576622.tar.xz |
* Implements IObject.Materials[].*
* This lets you do things like IObject.Materials[0].Texture = new UUID("0000-...");
3 files changed, 93 insertions, 2 deletions
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Graphics.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Graphics.cs index 4de249f..44bae5c 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Graphics.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Graphics.cs | |||
@@ -25,7 +25,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
25 | AssetBase asset = new AssetBase(); | 25 | AssetBase asset = new AssetBase(); |
26 | asset.FullID = UUID.Random(); | 26 | asset.FullID = UUID.Random(); |
27 | asset.Data = OpenJPEG.EncodeFromImage(data, lossless); | 27 | asset.Data = OpenJPEG.EncodeFromImage(data, lossless); |
28 | asset.Name = "MRMDynamicImage" + Util.RandomClass.Next(1, 10000); | 28 | asset.Name = "MRMDynamicImage"; |
29 | asset.Type = 0; | 29 | asset.Type = 0; |
30 | asset.Description = "MRM Image"; | 30 | asset.Description = "MRM Image"; |
31 | asset.Local = false; | 31 | asset.Local = false; |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs index 75ec33a..d6c3f7f 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs | |||
@@ -167,7 +167,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
167 | 167 | ||
168 | for (int i = 0; i < rets.Length;i++ ) | 168 | for (int i = 0; i < rets.Length;i++ ) |
169 | { | 169 | { |
170 | //rets[i] = new ObjectFace | 170 | rets[i] = new SOPObjectMaterial(i, sop); |
171 | } | 171 | } |
172 | 172 | ||
173 | return rets; | 173 | return rets; |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObjectMaterial.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObjectMaterial.cs new file mode 100644 index 0000000..94de09e --- /dev/null +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObjectMaterial.cs | |||
@@ -0,0 +1,91 @@ | |||
1 | using System; | ||
2 | using System.Collections.Generic; | ||
3 | using System.Drawing; | ||
4 | using System.Text; | ||
5 | using OpenMetaverse; | ||
6 | using OpenSim.Region.Framework.Scenes; | ||
7 | |||
8 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | ||
9 | { | ||
10 | class SOPObjectMaterial : IObjectMaterial | ||
11 | { | ||
12 | private readonly int m_face; | ||
13 | private readonly SceneObjectPart m_parent; | ||
14 | |||
15 | public SOPObjectMaterial(int m_face, SceneObjectPart m_parent) | ||
16 | { | ||
17 | this.m_face = m_face; | ||
18 | this.m_parent = m_parent; | ||
19 | } | ||
20 | |||
21 | public Color Color | ||
22 | { | ||
23 | get | ||
24 | { | ||
25 | Color4 res = GetTexface().RGBA; | ||
26 | return Color.FromArgb((int) (res.A*255), (int) (res.R*255), (int) (res.G*255), (int) (res.B*255)); | ||
27 | } | ||
28 | set | ||
29 | { | ||
30 | Primitive.TextureEntry tex = m_parent.Shape.Textures; | ||
31 | Primitive.TextureEntryFace texface = tex.CreateFace((uint)m_face); | ||
32 | texface.RGBA = new Color4(value.R,value.G,value.B,value.A); | ||
33 | tex.FaceTextures[m_face] = texface; | ||
34 | m_parent.UpdateTexture(tex); | ||
35 | } | ||
36 | } | ||
37 | |||
38 | public UUID Texture | ||
39 | { | ||
40 | get | ||
41 | { | ||
42 | Primitive.TextureEntryFace texface = GetTexface(); | ||
43 | return texface.TextureID; | ||
44 | } | ||
45 | set | ||
46 | { | ||
47 | Primitive.TextureEntry tex = m_parent.Shape.Textures; | ||
48 | Primitive.TextureEntryFace texface = tex.CreateFace((uint)m_face); | ||
49 | texface.TextureID = value; | ||
50 | tex.FaceTextures[m_face] = texface; | ||
51 | m_parent.UpdateTexture(tex); | ||
52 | } | ||
53 | } | ||
54 | |||
55 | private Primitive.TextureEntryFace GetTexface() | ||
56 | { | ||
57 | Primitive.TextureEntry tex = m_parent.Shape.Textures; | ||
58 | return tex.GetFace((uint)m_face); | ||
59 | } | ||
60 | |||
61 | public TextureMapping Mapping | ||
62 | { | ||
63 | get { throw new System.NotImplementedException(); } | ||
64 | set { throw new System.NotImplementedException(); } | ||
65 | } | ||
66 | |||
67 | public bool Bright | ||
68 | { | ||
69 | get { return GetTexface().Fullbright; } | ||
70 | set { throw new System.NotImplementedException(); } | ||
71 | } | ||
72 | |||
73 | public double Bloom | ||
74 | { | ||
75 | get { return GetTexface().Glow; } | ||
76 | set { throw new System.NotImplementedException(); } | ||
77 | } | ||
78 | |||
79 | public bool Shiny | ||
80 | { | ||
81 | get { return GetTexface().Shiny != Shininess.None; } | ||
82 | set { throw new System.NotImplementedException(); } | ||
83 | } | ||
84 | |||
85 | public bool BumpMap | ||
86 | { | ||
87 | get { throw new System.NotImplementedException(); } | ||
88 | set { throw new System.NotImplementedException(); } | ||
89 | } | ||
90 | } | ||
91 | } | ||