realXtend/naali — pull request #302 by jonnenauha (2011-12-20 07:55:40+00:00)
Title: Scene sync state per connection priority management

* Expose per connection SceneSyncState objects to scripting on the server. And I do mean server only, we don't want clients getting to the sync state object directly but access it via scene.
* Allow script logic to "deny" addition of entities and components to the sync state for a particular client. Once a entity or component has been added to peding state it will only go to the client if its explicitly added to the sync state via the SceneSyncState object for that client.
* First phase of the implementation allows to prioritize the 'what and when' but does not allow remove entities from particular sync states during runtime. This can be added later if needed.
* This enabled worlds to "optimize" what entities get sent to each client immediately on login and what gets sent later at a time when the script logic sees it necessary.
* Includes example scene where about all of the new features are presented and showed how to use them.

Note: Does not change any default behaviour. The whole state gets replicated on login if there is no script (or c++ module for that matter) denying the entity and component add requests. This is optional server side logic and transparent to the client.