| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
measurement period and an idealised frame time.
The previous lines-per-second measurement used for top scripts report was inaccurate, since lines executed does not reflect time taken to execute.
Also, every fetch of the report would reset all the numbers limiting its usefulness and we weren't even guaranteed to see the top 100.
The actual measurement value should be script execution time per frame but XEngine does not work this way.
Therefore, we use actual script execution time scaled by the measurement period and an idealised frame time.
This is still not ideal but gives reasonable results and allows scripts to be compared.
This commit moves script execution time calculations from SceneGraph into IScriptModule implementations.
|
|
|
|
|
|
|
|
|
| |
from region modules. The LSL translator is extended to generate the
modInvoke format of commands for directly inlined function calls.
A region module can register a function Test() with the name "Test".
LSL code can call that function as "Test()". The compiler will translate
that invocation into modInvoke("Test", ...)
|
|
|
|
|
|
| |
status" command.
This is for diagnostic purposes.
|
| |
|
|
|
|
| |
should in theory never happen), don't add the NPC to the npc list but return UUID.Zero instead.
|
| |
|
|
|
|
|
| |
This allows NPCs to be sensed as agents by LSL sensors rather than as a specific NPC type (which is currently an OpenSimulator-only extension).
Wiki doc on this and other recent NPC functions will follow soon
|
|
|
|
|
|
|
| |
NPC, the npc's own key for an 'unowned' NPC and NULL_KEY is the input key was not an npc.
llGetOwnerKey() could also be extended but this does not allow one to distinguish between an unowned NPC and some other result (e.g. 'no such object' if NULL_KEY is the return.
Also, any future extensions to LSL functions by Linden Lab are unpredictable and OpenSim-specific extensions could clash.
|
|
|
|
|
|
|
|
|
| |
OnObjectRemoved just once in the UrlModule itself, rather than repeatedly for every script.
Doing this in every script is unnecessary since the event trigger is parameterized by the item id.
All that would happen is 2000 scripts would trigger 1999 unnecessary calls, and a large number of initialized scripts may eventually trigger a StackOverflowException.
Registration moved to UrlModule so that the handler is registered for all script engine implementations.
This required moving the OnScriptRemoved and OnObjectRemoved events (only used by UrlModule in core) from IScriptEngine to IScriptModule to avoid circular references.
|
|
|
|
| |
Fix triggering of alerts when rezzing first script to an empty region, add login disable when loading oars.
|
|
|
|
| |
Move some added fuctions out of core into the addon module to keep things clean
|
|\ |
|
| |
| |
| |
| | |
This is being done outside the npc module since the check is meaningless for region module callers, who can fake any id that they like.
|
| |\ |
|
| | | |
|
| |/
| |
| |
| | |
methods and expose on interface for external calls.
|
|/ |
|
|
|
|
| |
owner, can be destroyed only by the owner and only the owner can save their appearance. Added "NPC" as a flag to llSensor to sense NPCs and exclude them from "AGENT" results.
|
|
|
|
| |
decoded, instead of just success/failure
|
|
|
|
|
|
| |
JPEG2000 decode of an asset
For debugging purposes.
|
|
|
|
| |
texture ids were available for the rebake request
|
|
|
|
| |
This allows some logic simplification and allows an external caller to manually request rebakes even if textures are uploaded (future command).
|
|
|
|
| |
Update basic profile to use the replaceable interface, making configuration less error-prone. Add support to query avatar's home user account and profile service for regions usng the updated OpenProfileModule with Hypergrid.
|
|
|
|
| |
region Scenes and Modules. Changed existing modules to use it instead of assuming that foreign = null account.
|
|
|
|
|
|
|
|
| |
AvatarFactoryModule from AppearanceInfoModule so that it can be used in debug (inactive).
Further filters "debug packet <level>" to exclused [Request]ObjectPropertiesFamily if level is below 25.
Adjust some method doc
Minor changes to some logging messages.
|
|
|
|
|
|
|
|
|
| |
it's live before sending other data.
This means that avatar/appearance data of other avatars and scene objects for a client will be sent after the ack rather than possibly before.
This may stop some avatars appearing grey on login.
This introduces a new OpenSim.Framework.ISceneAgent to accompany the existing OpenSim.Framework.ISceneObject and ISceneEntity
This allows IClientAPI to handle this as it can't reference OpenSim.Region.Framework.Interfaces
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
prim update to only triple queuing. Existing method was:
1. Schedule prim for update, adding to scene update list
2. Update on SOGs during heartbeat queues update onto each SceneViewer
3. Update on SPs during heartbeat queues update onto each IClientAPI
4. ProcessEntityUpdates queues updates into UDP send stack
Now the SceneViewer has been eliminated so updates are scheduled at any
time and then put onto the IClientAPI priority queues immediately during
SceneGraph.UpdateObjectGroups.
|
| |
| |
| |
| |
| |
| | |
relationship.
Rename IFriendsModule.AddFriend() to AddFriendship()
|
|/ |
|
|
|
|
| |
endings from previous commit.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
a single script by giving the script item id (which can be found via scripts show).
Not an ideal way to do this on a region with many scripts. Needs refinement later.
|
|/
|
|
| |
scene presence by client ID.
|
|
|
|
| |
Allows you to stand an NPC that has sat.
|
|
|
|
|
|
|
|
|
| |
Format is osNpcSit(<npc-uuid>, <target-uuid>, OS_NPC_SIT_IMMEDIATE)
e.g. osNpcSit(npc, llGetKey(), OS_NPC_SIT_IMMEDIATE);
At the moment, sit only succeeds if the part has a sit target set.
NPC immediately sits on the target even if miles away - they do not walk up to it.
This method is in development - it may change so please don't trust it yet.
Standing will follow shortly since that's kind of important once you're sitting :)
|
|
|
|
| |
handlers for attachments to call public interface and rearranged module file into sections
|
|
|
|
| |
converted back and forth between ScenePresence and IClientAPI. More to be done still.
|
| |
|
|
|
|
|
|
| |
AvatarFactoryModule.Initialize()
This is never null
|
|
|
|
|
|
| |
5035).
Using the RemoteAdmin API to close then recreate a region would fail if the estate name had not changed. If the estate name /was/ changed then the existing estate would be renamed rather than a new one being created. The problem really arose from a lack of distinction in the data storage layer between creating new estates and loading existing ones.
|
|
|
|
| |
It's not appropriate for code outside the attachments module to call this.
|
| |
|
|
|
|
|
|
|
|
|
| |
IScenePresence.AttachmentsSyncLock object
Attach and detach packets are processed asynchronously when received from a viewer.
Bugs like http://opensimulator.org/mantis/view.php?id=5644 indicate that in some situations (such as attaching/detaching entire folders of objects at once), there are race conditions between these threads.
Since multiple data structures need to be updated on attach/detach, it's not enough to lock the individual collections.
Therefore, this commit introduces a new IScenePresence.AttachmentsSyncLock which add/remove operations lock on.
|
| |
|
| |
|
| |
|
|
|
|
| |
m_pendingObjects lock in order to avoid the race condition seen by danbanner in http://opensimulator.org/mantis/view.php?id=5669
|
|
|
|
| |
IAttachmentsModule.RezSingleAttachmentFromInventory() with the updateInventoryStatus switch, since this is never called with false
|