From 3538eeafa200f035b67a833c11b5050360479463 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Wed, 4 Mar 2009 01:38:22 +0000 Subject: * Implementing some interfaces for aformentioned script engine. Ignore this. --- .../Scripting/Minimodule/IHeightmap.cs | 14 ++++ .../Scripting/Minimodule/IObject.cs | 96 ++++++++++++++++++++++ .../OptionalModules/Scripting/Minimodule/IWorld.cs | 11 +++ .../Scripting/ObjectModules/IObjectModule.cs | 15 ++++ 4 files changed, 136 insertions(+) create mode 100644 OpenSim/Region/OptionalModules/Scripting/Minimodule/IHeightmap.cs create mode 100644 OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs create mode 100644 OpenSim/Region/OptionalModules/Scripting/Minimodule/IWorld.cs create mode 100644 OpenSim/Region/OptionalModules/Scripting/ObjectModules/IObjectModule.cs (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IHeightmap.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IHeightmap.cs new file mode 100644 index 0000000..fd1cc3d --- /dev/null +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IHeightmap.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Region.OptionalModules.Scripting.Minimodule +{ + interface IHeightmap + { + int Height { get; } + int Width { get; } + double Get(int x, int y); + void Set(int x, int y, double val); + } +} diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs new file mode 100644 index 0000000..04d36a5 --- /dev/null +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs @@ -0,0 +1,96 @@ +using System; +using System.Drawing; +using OpenMetaverse; + +namespace OpenSim.Region.OptionalModules.Scripting.Minimodule +{ + interface IObject + { + bool Exists { get; } + uint LocalID { get; } + UUID GlobalID { get; } + + IObject[] Children { get; } + + /// + /// Equals 'this' if we have no parent. Ergo, Root.Children.Count will always return the total number of items in the linkset. + /// + IObject Root { get; } + + IObjectFace[] Faces { get; } + + Vector3 Scale { get; set; } + Quaternion Rotation { get; set; } + + Vector3 SitTarget { get; set; } + String SitTargetText { get; set; } + + String TouchText { get; set; } + + String Text { get; set; } + + bool IsPhysical { get; set; } // SetStatus(PHYSICS) + bool IsPhantom { get; set; } // SetStatus(PHANTOM) + bool IsRotationLockedX { get; set; } // SetStatus(!ROTATE_X) + bool IsRotationLockedY { get; set; } // SetStatus(!ROTATE_Y) + bool IsRotationLockedZ { get; set; } // SetStatus(!ROTATE_Z) + bool IsSandboxed { get; set; } // SetStatus(SANDBOX) + bool IsImmotile { get; set; } // SetStatus(BLOCK_GRAB) + bool IsAlwaysReturned { get; set; } // SetStatus(!DIE_AT_EDGE) + bool IsTemporary { get; set; } // TEMP_ON_REZ + + bool IsFlexible { get; set; } + + PrimType PrimShape { get; set; } + // TODO: + // PrimHole + // Repeats, Offsets, Cut/Dimple/ProfileCut + // Hollow, Twist, HoleSize, + // Taper[A+B], Shear[A+B], Revolutions, + // RadiusOffset, Skew + + Material Material { get; set; } + } + + public enum Material + { + Default, + Glass, + Metal, + Plastic, + Wood, + Rubber, + Stone, + Flesh + } + + public enum PrimType + { + NotPrimitive, + Box, + Cylinder, + Prism, + Sphere, + Torus, + Tube, + Ring, + Sculpt + } + + public enum TextureMapping + { + Default, + Planar + } + + interface IObjectFace + { + Color Color { get; set; } + UUID Texture { get; set; } + TextureMapping Mapping { get; set; } // SetPrimParms(PRIM_TEXGEN) + bool Bright { get; set; } // SetPrimParms(FULLBRIGHT) + double Bloom { get; set; } // SetPrimParms(GLOW) + bool Shiny { get; set; } // SetPrimParms(SHINY) + bool BumpMap { get; set; } // SetPrimParms(BUMPMAP) [DEPRECIATE IN FAVOUR OF UUID?] + } +} diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IWorld.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IWorld.cs new file mode 100644 index 0000000..3ce7020 --- /dev/null +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IWorld.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Region.OptionalModules.Scripting.Minimodule +{ + interface IWorld + { + + } +} diff --git a/OpenSim/Region/OptionalModules/Scripting/ObjectModules/IObjectModule.cs b/OpenSim/Region/OptionalModules/Scripting/ObjectModules/IObjectModule.cs new file mode 100644 index 0000000..923b053 --- /dev/null +++ b/OpenSim/Region/OptionalModules/Scripting/ObjectModules/IObjectModule.cs @@ -0,0 +1,15 @@ +using OpenSim.Region.Framework.Scenes; + +namespace OpenSim.Region.OptionalModules.Scripting.ObjectModules +{ + interface IObjectModule + { + void Add(EntityBase entity, Scene scene); + void Start(); + void Stop(); + void Tick(); + + string ClassName { get; } + bool IsShared { get; } + } +} -- cgit v1.1