aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/world/Entity.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/world/Entity.cs')
-rw-r--r--src/world/Entity.cs62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/world/Entity.cs b/src/world/Entity.cs
new file mode 100644
index 0000000..147478b
--- /dev/null
+++ b/src/world/Entity.cs
@@ -0,0 +1,62 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4using Axiom.MathLib;
5using OpenSim.types;
6using libsecondlife;
7
8namespace OpenSim.world
9{
10 public class Entity
11 {
12 public libsecondlife.LLUUID uuid;
13 public uint localid;
14 public LLVector3 position;
15 public LLVector3 velocity;
16 public Quaternion rotation;
17 protected string name;
18 protected List<Entity> children;
19
20 public Entity()
21 {
22 uuid = new libsecondlife.LLUUID();
23 localid = 8880000 + (OpenSim_Main.local_world._localNumber++); // FIXME - race condition!
24 position = new LLVector3();
25 velocity = new LLVector3();
26 rotation = new Quaternion();
27 name = "(basic entity)";
28 children = new List<Entity>();
29 }
30 public virtual void addForces()
31 {
32 foreach (Entity child in children)
33 {
34 child.addForces();
35 }
36 }
37 public virtual void update() {
38 // Do any per-frame updates needed that are applicable to every type of entity
39 foreach (Entity child in children)
40 {
41 child.update();
42 }
43 }
44
45 public virtual string getName()
46 {
47 return name;
48 }
49
50 public virtual Mesh getMesh()
51 {
52 Mesh mesh = new Mesh();
53
54 foreach (Entity child in children)
55 {
56 mesh += child.getMesh();
57 }
58
59 return mesh;
60 }
61 }
62}