1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using libsecondlife;
using Nini.Config;
using OpenSim.Framework;
using OpenSim.Region.Environment.Interfaces;
using OpenSim.Region.Environment.Scenes;
namespace OpenSim.Region.Examples.SimpleModule
{
public class RegionModule : IRegionModule
{
#region IRegionModule Members
private Scene m_scene;
public void Initialise(Scene scene, IConfigSource source)
{
m_scene = scene;
}
public void PostInitialise()
{
RegionInfo regionInfo = m_scene.RegionInfo;
LLVector3 pos = new LLVector3(110, 129, 27);
AddCpuCounter(regionInfo, pos);
AddComplexObjects(regionInfo, pos);
AddAvatars();
AddFileSystemObjects();
}
private void AddFileSystemObjects()
{
DirectoryInfo dirInfo = new DirectoryInfo(".");
float x = 0;
float z = 0;
foreach (FileInfo fileInfo in dirInfo.GetFiles())
{
LLVector3 filePos = new LLVector3(100 + x, 129, 27 + z);
x = x + 2;
if (x > 50)
{
x = 0;
z = z + 2;
}
FileSystemObject fileObject = new FileSystemObject(m_scene, fileInfo, filePos);
m_scene.AddEntity(fileObject);
}
}
private void AddAvatars()
{
for (int i = 0; i < 2; i++)
{
MyNpcCharacter m_character = new MyNpcCharacter(m_scene.EventManager);
m_scene.AddNewClient(m_character, false);
}
List<ScenePresence> avatars = m_scene.GetAvatars();
foreach (ScenePresence avatar in avatars)
{
avatar.AbsolutePosition =
new LLVector3((float)Util.RandomClass.Next(100, 200), (float)Util.RandomClass.Next(30, 200), 2);
}
}
private void AddComplexObjects(RegionInfo regionInfo, LLVector3 pos)
{
int objs = 3;
for (int i = 0; i < (objs*objs*objs); i++)
{
LLVector3 posOffset = new LLVector3((i % objs) * 4, ((i % (objs*objs)) / ( objs )) * 4, (i / (objs*objs)) * 4);
ComplexObject complexObject =
new ComplexObject(m_scene, regionInfo.RegionHandle, LLUUID.Zero, m_scene.PrimIDAllocate(),
pos + posOffset);
m_scene.AddEntity(complexObject);
}
}
private void AddCpuCounter(RegionInfo regionInfo, LLVector3 pos)
{
SceneObjectGroup sceneObject =
new CpuCounterObject(m_scene, regionInfo.RegionHandle, LLUUID.Zero, m_scene.PrimIDAllocate(),
pos + new LLVector3(1f, 1f, 1f));
m_scene.AddEntity(sceneObject);
}
public void Close()
{
m_scene = null;
}
public string Name
{
get { return GetType().AssemblyQualifiedName; }
}
public bool IsSharedModule
{
get { return false; }
}
#endregion
}
}
|