Commit Graph

307 Commits (6dd99837fd4bb6dcaf4dbf89ddc1b3f28337bca5)

Author SHA1 Message Date
Adam Frisby cbd454d692 * Implements ISecurityCredential member on SPAvatar, SPAvatarAttachment
* Disables 'event not used' warning for IRCClientView; cuts OpenSim total warnings back.
2009-08-16 22:01:18 +10:00
Adam Frisby c2be3edd2d * Refactor: Moves IAvatarAttachment into IAvatarAttachment.cs instead of IAvatar.cs 2009-08-16 21:49:53 +10:00
Adam Frisby b28e826541 * Implements ISecurityCredential on all uses of SOPObject.cs except Avatar Attachments. 2009-08-16 21:41:57 +10:00
Adam Frisby adae13cd18 * [MRM] Added permission checks to MRM Events (ie, requires edit permission to bind to OnTouch) 2009-08-16 21:36:33 +10:00
Adam Frisby 8621dc405e * Fixes potential NulRef in MRM Security Checks. 2009-08-16 21:23:39 +10:00
Adam Frisby aea4d7c63b Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2009-08-16 21:21:38 +10:00
Adam Frisby 975c49a399 * [MRM] Implements permission checks on IObject implementations in SOPObject.cs. Does not implement security on IObjectInventory yet. 2009-08-16 21:20:45 +10:00
Jeff Ames 2b630470b0 Add copyright headers. Formatting cleanup. 2009-08-16 17:30:13 +09:00
Jeff Ames 9d9fcac038 Misc cleanup. 2009-08-16 17:14:21 +09:00
Adam Frisby 9090a90769 * Beginnings of a Security Credential system in MRM. This will eventually lead to trusted execution of untrusted MRMs. 2009-08-16 03:48:16 +10:00
Jeff Ames bc6ec3b564 Formatting cleanup. 2009-08-09 00:43:13 +09:00
Teravus Ovares (Dan Olivares) 2b990a61bf This is the second part of the 'not crash on regionsize changes'. This lets you configure region sizes to be smaller without crashing the region. I remind you that regions are still square, must be a multiple of 4, and the Linden client doesn't like anything other then 256. If you set it bigger or smaller, the terrain doesn't load in the client, the map has issues, and god forbid you connect it to a grid that expects 256m regions. 2009-08-07 20:31:48 -04:00
Melanie 3219e648cc From: Snowcrash <Snowcrash.short@gmail.com>
Date: Wed, 5 Aug 2009 12:45:56 +0200
Subject: [PATCH] A few minor tweaks to the MRM API's in order to make it possible for MRM's to run in a separate AppDomain without poluting the primary appdomain of OpenSim

Specifically:
Added an explicit method for getting the "globals" of the MRM, removing the need to have the MRM script code loaded into the primary domain, in order to set up proxies
Added a [Serializable] attribute to TouchEventArgs, again in order to remove the need to have MRM script code loaded into the primary domain.

---------

Applied with whitespace changes
2009-08-07 19:04:20 +01:00
Adam Frisby 270ae50d70 * Implements MRM's Stop() interface member.
* MRM Scripts should do appropriate cleanup within this event, to allow for clean shutdowns and script updates. This means unbinding from events you are listening to, and releasing any resources.
2009-08-07 14:17:51 +10:00
Teravus Ovares 64bd9a3354 * Updates libOMV to version 0.7.0
* Uses mantis #3811 as a base (thanks jhuliman) with changes.
* E-mail regarding interface changes sent to the opensim-dev list 
* Archive: https://lists.berlios.de/pipermail/opensim-dev/2009-July/007219.html
2009-07-25 15:49:10 +00:00
Justin Clarke Casey 5815162d7e minor: remove some mono compiler warnings 2009-07-15 20:49:58 +00:00
Jeff Ames cce451d9de Formatting cleanup. 2009-07-11 11:47:33 +00:00
Charles Krinke 61008c9c13 Thank you kindly, SnowDrop, for a patch that:
This add a configuration option to the MRM module called "hidden".
if MRM is marked as enabled, the module will additionally check for 
the "Hidden" flag, before registering for client side scriping events.
When MRM is running hidden, it will not respond to client side 
scripting events, giving serverside scripting modules, like MRMLoader 
and MRMAddin the ability to leverage the MRM engine. This way, even 
a possible clientside exploit will not be possible, while still 
allowing the MRM engine to run.
2009-07-08 20:57:26 +00:00
Jeff Ames 1d01d6d919 Formatting cleanup. 2009-07-01 23:37:09 +00:00
Jeff Ames a0a44d8ebc Add copyright headers. 2009-07-01 23:25:59 +00:00
Jeff Ames 3f2fba610e Update svn properties. 2009-07-01 10:26:43 +00:00
Charles Krinke 6942eaed5b Thank you kindly, Snowdrop, for a patch that solves:
The current API for MRM is quite sparse, this patch 
supplies basic support for accessing the task 
inventory of object.
2009-06-29 21:47:47 +00:00
Charles Krinke 7bb070be55 Thank you kindly, Snowdrop/Snowcrash for a patch that:
This patch makes the worn attachments accessible to MRM scripting
2009-06-29 18:07:30 +00:00
Jeff Ames a23d64dec1 Formatting cleanup. 2009-06-10 04:28:56 +00:00
Jeff Ames 840de6c036 Minor: Change OpenSim to OpenSimulator in older copyright headers and LICENSE.txt. 2009-06-01 06:37:14 +00:00
Jeff Ames 35b450d41d Add copyright headers, formatting cleanup, ignore some generated files. 2009-05-31 18:35:00 +00:00
Jeff Ames db2c4ab94c Update svn properties. 2009-05-31 16:26:18 +00:00
Adam Frisby dc15190365 * Adds MRM scripting commands, World.Objects.Create(Vector3 position) and World.Objects.Create(Vector3 position, Quaternion rotation). These rez a 'default box' object at the specified coordinates, and return the associated IObject. 2009-05-31 12:53:05 +00:00
Adam Frisby c30b5ee014 * Adds World.Audio.* to MRM
* This includes methods such as PlaySound which take a Position as an argument, allowing you to trigger sounds arbitrarily across the scene without needing a parent object in the position.
2009-05-29 23:49:48 +00:00
Adam Frisby 433ee75775 * Protip: When you click 'make public' in resharper, note to save before committing. 2009-05-29 22:48:34 +00:00
Adam Frisby 78bec42225 * Implements Sound on Objects for IObject in MRM
* Method: IObject.Sound.Play(UUID sound, double volume)
* More feature-packed API to come soon. (I want a World.Sound with arbitrary positioning)
2009-05-29 22:44:49 +00:00
diva 5e4fc6e91e Heart surgery on asset service code bits. Affects OpenSim.ini configuration -- please see the example. Affects region servers only.
This may break a lot of things, but it needs to go in. It was tested in standalone and the UCI grid, but it needs a lot more testing.
Known problems: 
* HG asset transfers are borked for now
* missing texture is missing
* 3 unit tests commented out for now
2009-05-15 05:00:25 +00:00
Adam Frisby 12d7063b0b * Adds additional check to MRM rezzing - the host object must be created by the sim owner, not just owned by it. 2009-05-12 21:42:20 +00:00
Adam Frisby 3a28f748d5 * Adds ScenePresence.TeleportWithMomentum - same as .Teleport, but preserves velocity. 2009-05-12 21:21:33 +00:00
Adam Frisby 559355189a * Applies Mantis #3630 - Adds support for outside MRM initialisation, makes MRMModule compatible with the Visual Studio MRMLoader ( http://forge.opensimulator.org/gf/project/mrmloader/ ) 2009-05-12 13:10:04 +00:00
Adam Frisby c534d7f614 * Code to make MRM debugging easier. 2009-05-09 17:44:12 +00:00
Melanie Thielker acfb5051cd Intermediate commit. WILL NOT COMPILE! 2009-05-04 20:15:39 +00:00
Jeff Ames 8dbcfc70bf Add copyright headers. Formatting cleanup. 2009-04-27 05:22:44 +00:00
Jeff Ames 6077bbda30 Update svn properties. 2009-04-27 03:22:31 +00:00
Adam Frisby 883f7dde38 * Implements Microthreading for MRM scripting.
* This is achieved through two new keywords "microthreaded" and "relax". example:
public microthreaded void MyFunc(...) {
  ...
  relax;
  ...
}
2009-04-24 05:33:23 +00:00
Adam Frisby d6b62b677c * Committing stub VW-over-HTTP ClientStack. (2/2)
* Minor MRM tweak.
2009-04-22 10:11:12 +00:00
Jeff Ames 6aa5d3904d Add copyright headers. Formatting cleanup. 2009-04-22 00:48:56 +00:00
Jeff Ames 13f5dd5f35 Update svn properties. 2009-04-21 15:30:03 +00:00
Adam Frisby 594c7c3eb1 * Implements Extensions to MRM. This allows Region Modules to insert new classes into OpenSim MRM's.
* Example in region module:
    Scene.GetModuleInterface<IMRMModule>.RegisterExtension<IMyInterface>(this);
* In the MRM:
    //@DEPENDS:MyExtensionModule.dll
    ...
    Host.Extensions<IMyInterface>.DoStuff();
2009-04-21 04:55:53 +00:00
Adam Frisby b2a7c1468e * Adds IObject.Shape to MRM
* Implements Sculpty modification support to MRM
* Example: IObject.Shape.SculptMap = new UUID("0000-0000-0000....");
2009-04-18 05:43:40 +00:00
Justin Clarke Casey 9f6b8ec9b0 minor: Remove some mono compiler warnings. Uncomment code when it's actually being used. 2009-04-15 19:46:37 +00:00
Justin Clarke Casey 63936d442c * Make it possible to add a request id to load and save oar requests
* This allows specific requests to be identified.
2009-04-15 19:12:37 +00:00
Jeff Ames cad0aab793 Formatting cleanup. 2009-04-14 11:38:33 +00:00
Jeff Ames 6e19fb8593 Add copyright headers. 2009-04-14 10:56:24 +00:00
Jeff Ames fa29cf5c50 Update svn properties. 2009-04-14 10:00:13 +00:00
Adam Frisby b8619386eb * Minor MRM Cleanup
* Interfaces now live in Interfaces subdirectory. 
* Namespace does not yet reflect this change.
* Final namespace for MRMs will probably sit somewhere around OpenSim.Extend.MRM[?]
2009-04-11 10:21:04 +00:00
Melanie Thielker 3307f21706 Add XmlRpcGridRouter, a module that communicates URIs for XMLRPC channels
to a central server via REST, for centralized XMLRPC routing.
2009-04-10 22:05:37 +00:00
Melanie Thielker ae6f265729 Add an optional region module which will supply a script event,
xmlrpc_uri(string) in response to a OpenRemoteDataChannel call. The string
is the fully qualified URI to post XMLRPC requests for that script to.
2009-04-10 21:26:36 +00:00
Adam Frisby b664566b8f * Fixes a bug in MRM scripting whereby the Touch flag is never enabled for OnTouch capable scripts. 2009-04-10 05:13:02 +00:00
Justin Clarke Casey 601fa22185 * minor: remove some mono compiler warnings 2009-04-09 20:06:30 +00:00
Adam Frisby f44694c28e * Allows MRMs to import libraries in the OpenSim bin directory.
* Syntax: //@DEPENDS:library.dll
2009-04-09 15:46:02 +00:00
Adam Frisby 8ee81f98ea * Implements IObject.Materials[].*
* This lets you do things like IObject.Materials[0].Texture = new UUID("0000-...");
2009-04-09 14:51:18 +00:00
Adam Frisby c77e7fce9e * Implements IGraphics interface for MRM Scripting.
* This allows you to utilize System.Drawing tools on textures within the region.
* Example: use System.Drawing.Bitmap to make your texture, then use Host.Graphics.SaveBitmap to make an asset from it in JPEG2K. You can edit (but not overwrite) existing textures using Host.Graphics.LoadBitmap.
2009-04-09 14:19:49 +00:00
Adam Frisby 98eda9ebdb * Adds World.OnNewUser += delegate(IWorld sender, NewUserEventArgs e);
* This event fires when a new avatar is created within the Scene. (Internally corresponds to EventManager.OnNewPresence)
2009-04-09 13:22:27 +00:00
Adam Frisby c91c24441b * Limits MRM scripting to Region Master Avatar only.
* This makes MRM scripting ever so slightly more secure. If you have enforced Object Permissions enabled, it may be acceptable to enable MRM within your regions.
* Security bug reports on this feature are much appreciated (eg: anyone finding ways around this to execute a MRM as a basic user).
2009-04-09 13:14:25 +00:00
Adam Frisby 162dd5c65c * World.OnChat no longer fires if there is no chat text (prevents the typing animation packet from firing OnChat) 2009-04-09 13:05:01 +00:00
Adam Frisby 03984e7304 * Added additional debug testing info to Scene
* Corrected issue with MRMs where it would attempt to overwrite an already loaded DLL. (and thus fail with cryptic UnauthorizedAccessException.)
* Made DrunkenTextAppreciationModule.cs MRM not crash with StackOverflowException
* Added some temporary logging to MRM World.*
2009-04-09 13:03:27 +00:00
Adam Frisby 0af0399198 * Forgot to commit IEntity in last commit.
* Added "DrunkenTextAppreciationModule" Demo MRM - behaves very similarly to the sobriety filter in WoW. ;)
2009-04-09 11:25:50 +00:00
Adam Frisby b529750548 * Moves Name, GlobalID and WorldPosition into new IEntity interface.
* Avatar and Object now inherit from IEntity.
* Avatar.Position is now Avatar.WorldPosition to match IObject property.
* Implements event World.OnChat += delegate(IWorld sender, ChatEventArgs e);
2009-04-09 11:09:24 +00:00
Adam Frisby 1b56fff7c8 * Implements retrieving child primitives via World.Objects[id] (MRM)
* Optimizes SceneGraph - fetches on primitives via "GetGroupByPrim" wont search the entire list if the primitive is infact the root. (Core)
* Updates Test MRM.
2009-04-09 10:07:40 +00:00
Adam Frisby 232241ab25 * Implements IObject.OnTouch += delegate(IObject sender, TouchEventArgs e)
* This is equivalent to LSL 'touch(int senders)'
2009-04-09 07:46:05 +00:00
Jeff Ames 465f1df592 Add copyright headers, formatting cleanup. 2009-04-06 14:36:44 +00:00
Jeff Ames 5f34bd73fb Update svn properties. 2009-04-06 14:24:13 +00:00
Adam Frisby 9e51c2db95 * Implements World.Parcels[] array for MRM scripting. 2009-04-06 07:17:23 +00:00
Adam Frisby 918c466881 * Adds AutoOAR module, this will automatically OAR your regions every 20 minutes to a directory called "autooar", if enabled. Default disabled. Use [autooar] Enabled=true in OpenSim.ini to enable.
* Adds some MRM XMLDOC
2009-04-06 04:17:55 +00:00
Adam Frisby 9a4192d14e * Fixed copyright headers on HyperGrid source files. (Now match the rest of OpenSim, license text is unchanged)
* Added Bitmap[,] to IParcel for MRM
2009-04-05 02:51:10 +00:00
Adam Frisby 51419d21e4 * Minor cosmetic change to SEUser to get Bamboo to initiate another build. (grr)
* Adds basic IParcel interface. Soon to live on World.Parcels{[id],[x,y]}
2009-04-05 01:36:30 +00:00
Adam Frisby dc967b16a4 * Typo in constructor during class rename (whoops!)
* OpenSim is now over 9000.
2009-04-05 01:29:58 +00:00
Adam Frisby f094847c43 * Implements ISocialEntity - this represents the class of "user-like" objects such as Users, Groups, etc. Destined to be used as the return value of any "Owner" properties.
* Implements basic "SEUser" class which implements Avatar/Agent SE functions (primitive).
2009-04-05 01:28:23 +00:00
Adam Frisby 2e1646d368 * Removes IsPhysical, IsPhantom from IObject, since this is now represented in IObject.Physics.Enabled / IObject.Physics.Phantom instead. 2009-04-04 23:44:37 +00:00
Adam Frisby e120876bd0 Implements on IObjectPhysics:
* SetMomentum
* AddAngularForce
* AddForce
* FloatOnWater
* Force
* Acceleration
* Torque
* Velocity
* RotationalVelocity
* CenterOfMass
* GeometricCenter
* Buoyancy
* Mass (Partial)
* Density (Partial)
2009-04-04 23:32:37 +00:00
Adam Frisby 746729b6ce * Implements IObjectPhysics on SOPObject partially.
* Eg, IObject.Physics.* is now valid syntax and compiles (but will throw NotSupported at runtime)
2009-04-04 23:23:24 +00:00
Adam Frisby 39c3ccb93a * Implements IObjectPhysics, this collects Physics attributes into one interface, will be referenced on IObject as IObject.Physics.*
* Eg; IObject.Physics.Torque = new Vector3(30.0,0.4,0.5);
* Maps loosely to internal PhysicsActor class.
2009-04-04 23:16:19 +00:00
Adam Frisby d758753d7c * More fiddling with MRM IPersistence, now stores <T> instead of Object. 2009-04-04 22:57:53 +00:00
Adam Frisby 23193ab538 * Changed IPersistence interface so that passing the MRMBase is unessecary. 2009-04-04 08:36:45 +00:00
Adam Frisby 4e9403e6ef * Renamed Heightmap.Height to Heightmap.Length to avoid confusion about axis.
* Added XMLDOC to MRM API code, this means we have usable programming docs being produced here: http://docs.opensimulator.org/namespaceOpenSim_1_1Region_1_1OptionalModules_1_1Scripting_1_1Minimodule.html (eg IObject, IHeightmap, etc)
2009-04-04 08:33:58 +00:00
Jeff Ames 5cf7b784ce Add copyright headers, formatting cleanup. 2009-04-04 07:32:41 +00:00
Adam Frisby c3e1756a48 * Removes IObject.Position, IObject.Rotation from IObject
* Adds IObject.WorldPosition and IObject.OffsetPosition - this is equivilent to AbsolutePosition and OffsetPosition in SOP respectively.
* Adds IObject.WorldRotation and IObject.OffsetRotation - as above.
2009-04-04 06:28:55 +00:00
Adam Frisby fcbe7b9ed6 * Drops Heightmap.Get/Heightmap.Set from IHeightmap interface.
* Adds Heightmap[x,y] to interface.
* MRM Scripts should utilize World.Heightmap[x,y] = 0.0; to replace set, and Val = World.Heightmap[x,y] to get.
2009-04-04 05:51:26 +00:00
Adam Frisby 084ffc74c6 * Implements MRM IObject.Say - this is equivilent to llSay
Example:
        public override void Start()
        {
            Host.Object.Say("Hello World!");
        }
2009-04-03 10:42:39 +00:00
Adam Frisby 254d3099f0 * Implements Scene.SimChat(string,...) rather than byte[]. We should probably mark byte[] as obsolete.
* Implements SOPObject.Say for MRM. (Note, not IObject yet)
2009-04-03 10:40:14 +00:00
Adam Frisby 36bc485e7e * MRM Scripts will now no longer disconnect the client if there was an error in compilation or script initialisation.
* Clarified some debug text for MRM Enabling
2009-04-03 10:30:51 +00:00
Adam Frisby 7e91f41535 * Implements "ID" semi-global within MRM scripts. This is tied to the 'state ID' for MRMs.
* Implements IPersistence interface, allows simple KeyValue access for MRM scripts to a more permanent datastore.
2009-04-03 09:22:34 +00:00
Jeff Ames 99cfcf405b Update svn properties. 2009-04-01 14:50:18 +00:00
Adam Frisby 1a25969096 * MRM Adjustments
* Renamed 'Material' to PhysicsMaterial (Wood, Glass, Metal, etc.). May want to place in subclass with other physics specific properties. (We however need to support these features in ODE/etc first.)
* Renamed Faces to Materials. IObjectFace to IObjectMaterial - this is for clarity for those coming from a 3D Programming background (it also makes more sense if/when we support Meshes in core). Properties and members remain identical.
* Added XMLDoc comments to IObject to assist people writing MRMs in XMLDoc aware editors.
2009-04-01 11:03:42 +00:00
Adam Frisby 5cd70a8c0e * MRM Adjustments
* Changes World.Objects from Array IObject[] to IObjectAccessor.
* Syntactically identical in most behaviour, however the indexer is now ranges not from 0..Count, but any valid internal LocalID. Additional indexers have been added for UUID.
* Example: for(int i=0;i<World.Objects.Count;i++) will not work any more, however foreach(World.Objects) will remain functional.
* This prevents us needing to create a list for each access to World.Objects which should [in theory] present a dramatic speed improvement to MRM scripts frequently accessing World.Objects.
2009-04-01 09:31:40 +00:00
Adam Frisby 7eccad05c9 * Adds World.Avatars[] to MRM Scripting. Contains an enumerable array containing IAvatar instances for each avatar in the region.
* Adds Test/TestModule.cs which demonstrates a very quick and simple MRM Test.
2009-04-01 06:55:39 +00:00
Adam Frisby 5225e40f9e * Removes some hard-coded magic numbers relating to RegionSize. We now use Constants.RegionSize as expected. (Working towards enlarged or smaller regionsizes that arent multiples of 256m)
* Adds minor functionality to MRM Scripting.
2009-04-01 05:58:07 +00:00
Dr Scofield fa619bdf8c From: Christopher Yeoh <yeohc@au1.ibm.com>
Patch to RegionReady which adds a field which adds to the message
whether the region is ready due to a server startup or due to an oar
file loading.
2009-03-12 18:51:28 +00:00
Jeff Ames 3fe42386e4 Add copyright headers. 2009-03-07 02:11:50 +00:00
Jeff Ames e1f68145be Update svn properties. 2009-03-07 02:00:18 +00:00
Adam Frisby 65990de390 MRM Scripting Changes
* Renames MiniRegionModule to MRMModule to make it more distinct from the actual Mini Region Module[s] executed in Scene.
* Renames MiniRegionModuleBase to MRMBase for convenience. MRM's need to be adjusted to inherit from MRMBase.
2009-03-05 00:52:59 +00:00
Adam Frisby 0e7e2eba14 * Implements a number of members on SOGObject for use with the MRM Script Engine API.
* It's lag-tacular! :D
2009-03-05 00:16:06 +00:00
Adam Frisby f3aac0fa4a * Fleshed out the MRM Module a little.
* Please don't use this yet, it represents a very heavy security risk if you enable it.
2009-03-04 22:14:40 +00:00
Adam Frisby e57ac6e0bf * Whoops. Left MiniModule enabled to anyone. (potential security risk). Disabled - edit code to load. 2009-03-04 20:29:50 +00:00
Adam Frisby ea9bb2f741 * More work on MiniRegionModule module. 2009-03-04 20:28:11 +00:00
Mike Mazur b2135c2029 IObjectFace needs to be public to compile. 2009-03-04 03:58:11 +00:00
Adam Frisby 915b0f2448 * More work on MiniRegionModule module. 2009-03-04 02:29:51 +00:00
Adam Frisby 3538eeafa2 * Implementing some interfaces for aformentioned script engine. Ignore this. 2009-03-04 01:38:22 +00:00
Dr Scofield 81bb87168f cosmetic: adding region name to logging statement 2009-02-16 09:17:55 +00:00
Jeff Ames 95d53d48d4 Add copyright headers. Minor formatting cleanup. Fix some compiler warnings. Fix some m_log declarations. 2009-02-13 02:06:28 +00:00
Dr Scofield f70e580f86 From: Christopher Yeoh <yeohc@au1.ibm.com>
This changeset add the RegionReady module code. The module sends a
message on a configurable channel when an oar file has finished
loading or if the script engine has emptied its queue for the first
time (eg server startup). Config is something like this:

[RegionReady]
enabled = true
channel_notify = -800

The module also knows if there was an error with startup.
2009-02-11 14:35:07 +00:00