Some of you may have noticed an applications directory at the same level
in the svn tree as libsecondlife-cs. This folder will host any libsl
apps that people write and want to share their source code. OzSpade and
BabaYama are working on a chat app right now that will be in there as
soon as I figure out how the chat functions got broken, and I committed
a project I've been working on call SecondSuite. SecondSuite is a host
application that handles login and avatar tracking for libsl clients,
and can hand those logins (SecondLife objects) to plugins (C#
assemblies) that don't have to deal with login or logout. It allows an
easy way to develop GUI apps without writing too much repetitive code
each time, and interchangeable bits for logins. This is just theory so
not all of the following works yet, but the idea is you could login one
avatar and load a chat/IM plugin, a money transfer plugin, and a land
management plugin and have a functional mini-client built out of several
micro-clients. You could also connect a dozen avatars and link a
machinima scripting plugin to all of them, and direct a movie from a
single computer.
Right now Second Suite includes three plugins; Accountant, Prim
Importer, and Prim Builder. Accountant is just SLAccountant in plugin
form, Prim Importer is a sandbox plugin I'm toying around with to import
prim.blender builds (not finished yet, only imports about 90% of the
objects in a large build and gets rotations wrong). Prim Builder is a
new plugin that allows you to enter all of the possible values for
ObjectAdd and create a single prim. This is a very powerful tool but can
also easily cause problems, I've put a few caps in libsl and in Prim
Builder on certain limits to prevent sim crashes and other unexpected
issues. Most of the value caps in the program are due to the way SL
stores 8-bit floating point values differently for almost every field.
Removing or changing the caps won't allow you to do anything that can't
be done with it right now, it will just likely crash libsl (because C#
doesn't handle overflows or underflows the same way C/C++ do) or cause
some other problem.
The binding code between SecondSuite and the plugins is a third project
called SecondSuiteSDK, this is the interface that plugins are written
for. Take a look at any of the three example plugins to get an idea of
how to write your own. A single plugin having multiple forms (windows)
isn't properly supported yet, and there are numerous small and obvious
bugs right now that will be ironed out before a real beta release. Also
try compiling this under Mono (both Windows and non-Windows platforms)
and let me know if you find any issues there. I'm going to get the
gna.org bug tracking system setup for libsecondlife and subprojects like
SecondSuite.
John Hurliman
_______________________________________________
libsecondlife-dev mailing list
libsecondlife-dev@gna.org
https://mail.gna.org/listinfo/libsecondlife-dev