-1 on blurring the line on what each service does.
+1 on what Melanie says.
FYI, Wifi creates default avatars. This is done by an external,
optional, configurable service (Wifi, during registration), and not by
changing the base services. Take a look / grab the code.
On 1/28/2011 5:54 PM, Melanie wrote:
Please don't ignore the case where no default appearance is desired.
Also, the UserAccount service should not directly access the
inventory database. That would severely break the
compartmentalization ROBUST is built on.
The correct way is to have the inventory created by the inventory
module, as it is now.
The inventory module has no business populating that, and neither
does the account service. This should be done by an external
service, since it is only done on account creation.
A meta service, like the LLLoginService, which takes the interfaces
of both the inventory and avatar services and creates the inventory
AND appearance and stores it in both would be the correct solution
to this problem. It would be wrong (and get a -1) to shoehorn this
into the existing services.
ROBUST services are designed the Unix way. Do one thing, and do it
well. The inventory service is not meant to access appearance, the
user account service is not meant to access inventory, and so on.
Such a meta service can then be loaded by the user server, a
standalone or a web service like Wifi. And, obviously, it's
configurable, so people who don't want to have a default appearance
created, because they for instance have already working PHP code
that would be messed up by preexisting data could just not configure
it and see no change to current behavior.
Melanie
Justin Clark-Casey wrote:
Hi there,
Today, I had an opportunity to do some more work on setting up default
clothing/body parts for viewer 2 (this is in the
"viewer-2-initial-appearance" git branch).
I've come to the realization (obvious in retrospect) that giving these items
the default item IDs that the viewer wants
in the absence of any other appearance data is not going to work. This is for
the simple reason that item IDs are
primary keys and cannot be shared between avatars.
Therefore, I will need to use a random item ID and use this to set up a default
appearance at the same time as the
inventory items are created (currently, the appearance is only generated when
the avatar first logs in).
The user account service co-ordinates user account creation. It seems that the
sensible thing is to move default
inventory creation from the inventory service into the user account service.
Folder and item creation would take place
through existing add calls.
The IInventoryService.CreateUserInventory() method would still be called but
would only set up the very bare minimum
structure. In the SL case, this is just the user's root "My Inventory" folder.
The copy/pasted code for setting up estate managers in
Scene.SetModuleInterfaces() also has to move. The sensible thing
seems to be to expose a IUserAccountService.CreateUserAccount() call which is
only available to standalones (as is
effectively currently the case).
Commit 50254bf3 on this branch contains a rough version of this change. The
code to set up a default appearance with
random item IDs for default clothing/body parts has not yet been done.
Comments?
_______________________________________________
Opensim-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-dev
_______________________________________________
Opensim-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-dev