예제 #1
0
        public void Start(IScene scene)
        {
            m_scene = scene;

            m_dataStore = m_scene.Simian.GetAppModule <IDataStore>();
            if (m_dataStore == null)
            {
                m_log.Error("LLPrimitiveLoader requires an IDataStore");
                return;
            }

            m_primMesher = m_scene.GetSceneModule <IPrimMesher>();
            if (m_primMesher == null)
            {
                m_log.Error("LLPrimitiveLoader requires an IPrimMesher");
                return;
            }

            m_scriptEngine = m_scene.GetSceneModule <ILSLScriptEngine>();

            m_writeQueue = new ThrottledQueue <UUID, PrimSerialization>(5, 1000 * 30, true, SerializationHandler);
            m_writeQueue.Start();

            m_scene.OnEntityAddOrUpdate += EntityAddOrUpdateHandler;
            m_scene.OnEntityRemove      += EntityRemoveHandler;

            Deserialize();
        }
예제 #2
0
        public void Start(IScene scene)
        {
            m_scene = scene;

            m_dataStore = m_scene.Simian.GetAppModule<IDataStore>();
            if (m_dataStore == null)
            {
                m_log.Error("LLPrimitiveLoader requires an IDataStore");
                return;
            }

            m_primMesher = m_scene.GetSceneModule<IPrimMesher>();
            if (m_primMesher == null)
            {
                m_log.Error("LLPrimitiveLoader requires an IPrimMesher");
                return;
            }

            m_scriptEngine = m_scene.GetSceneModule<ILSLScriptEngine>();

            m_writeQueue = new ThrottledQueue<UUID, PrimSerialization>(5, 1000 * 30, true, SerializationHandler);
            m_writeQueue.Start();

            m_scene.OnEntityAddOrUpdate += EntityAddOrUpdateHandler;
            m_scene.OnEntityRemove += EntityRemoveHandler;

            Deserialize();
        }
예제 #3
0
 public void Start(IScene scene)
 {
     m_httpServer      = scene.Simian.GetAppModule <IHttpServer>();
     m_assetClient     = scene.Simian.GetAppModule <IAssetClient>();
     m_terrain         = scene.GetSceneModule <ITerrain>();
     m_primMesher      = scene.GetSceneModule <IPrimMesher>();
     m_lslScriptEngine = scene.GetSceneModule <ILSLScriptEngine>();
     m_messaging       = scene.GetSceneModule <Messaging>();
     m_sounds          = scene.GetSceneModule <Sounds>();
 }
예제 #4
0
        public void Start(IScene scene)
        {
            m_assetClient = scene.Simian.GetAppModule<IAssetClient>();
            m_terrain = scene.GetSceneModule<ITerrain>();
            m_primMesher = scene.GetSceneModule<IPrimMesher>();
            m_lslScriptEngine = scene.GetSceneModule<ILSLScriptEngine>();

            int implemented = CountMethods();
            m_log.Debug("Initializing LSL API with " + implemented + "/" + m_methods.Count + " implemented methods");
        }
예제 #5
0
파일: LindenApi.cs 프로젝트: thoys/simian
 public void Start(IScene scene)
 {
     m_httpServer = scene.Simian.GetAppModule<IHttpServer>();
     m_assetClient = scene.Simian.GetAppModule<IAssetClient>();
     m_terrain = scene.GetSceneModule<ITerrain>();
     m_primMesher = scene.GetSceneModule<IPrimMesher>();
     m_lslScriptEngine = scene.GetSceneModule<ILSLScriptEngine>();
     m_messaging = scene.GetSceneModule<Messaging>();
     m_sounds = scene.GetSceneModule<Sounds>();
 }
예제 #6
0
        public void Start(IScene scene)
        {
            m_scene           = scene;
            m_lslScriptEngine = m_scene.GetSceneModule <ILSLScriptEngine>();

            m_udp = m_scene.GetSceneModule <LLUDP>();
            if (m_udp != null)
            {
                m_udp.AddPacketHandler(PacketType.AgentUpdate, AgentUpdateHandler);
                m_udp.AddPacketHandler(PacketType.SetAlwaysRun, SetAlwaysRunHandler);
                m_udp.AddPacketHandler(PacketType.AgentRequestSit, AgentRequestSitHandler);
                m_udp.AddPacketHandler(PacketType.AgentSit, AgentSitHandler);

                m_scene.Simian.AddHeartbeatHandler(SendCoarseLocations);
            }
        }
예제 #7
0
파일: Movement.cs 프로젝트: thoys/simian
        public void Start(IScene scene)
        {
            m_scene = scene;
            m_lslScriptEngine = m_scene.GetSceneModule<ILSLScriptEngine>();

            m_udp = m_scene.GetSceneModule<LLUDP>();
            if (m_udp != null)
            {
                m_udp.AddPacketHandler(PacketType.AgentUpdate, AgentUpdateHandler);
                m_udp.AddPacketHandler(PacketType.SetAlwaysRun, SetAlwaysRunHandler);
                m_udp.AddPacketHandler(PacketType.AgentRequestSit, AgentRequestSitHandler);
                m_udp.AddPacketHandler(PacketType.AgentSit, AgentSitHandler);

                m_scene.Simian.AddHeartbeatHandler(SendCoarseLocations);
            }
        }
예제 #8
0
        public void Start(IScene scene)
        {
            m_scene = scene;

            m_inventory = m_scene.Simian.GetAppModule<IInventoryClient>();
            m_scriptEngine = m_scene.GetSceneModule<ILSLScriptEngine>();

            m_udp = m_scene.GetSceneModule<LLUDP>();
            if (m_udp != null)
            {
                m_udp.AddPacketHandler(PacketType.RequestTaskInventory, RequestTaskInventoryHandler);
                m_udp.AddPacketHandler(PacketType.UpdateTaskInventory, UpdateTaskInventoryHandler);
                m_udp.AddPacketHandler(PacketType.RezScript, RezScriptHandler);
                m_udp.AddPacketHandler(PacketType.RemoveTaskInventory, RemoveTaskInventoryHandler);
                m_udp.AddPacketHandler(PacketType.MoveTaskInventory, MoveTaskInventoryHandler);
                m_udp.AddPacketHandler(PacketType.GetScriptRunning, GetScriptRunningHandler);
            }
        }
예제 #9
0
        public void Start(IScene scene)
        {
            m_scene = scene;

            m_inventory    = m_scene.Simian.GetAppModule <IInventoryClient>();
            m_scriptEngine = m_scene.GetSceneModule <ILSLScriptEngine>();

            m_udp = m_scene.GetSceneModule <LLUDP>();
            if (m_udp != null)
            {
                m_udp.AddPacketHandler(PacketType.RequestTaskInventory, RequestTaskInventoryHandler);
                m_udp.AddPacketHandler(PacketType.UpdateTaskInventory, UpdateTaskInventoryHandler);
                m_udp.AddPacketHandler(PacketType.RezScript, RezScriptHandler);
                m_udp.AddPacketHandler(PacketType.RemoveTaskInventory, RemoveTaskInventoryHandler);
                m_udp.AddPacketHandler(PacketType.MoveTaskInventory, MoveTaskInventoryHandler);
                m_udp.AddPacketHandler(PacketType.GetScriptRunning, GetScriptRunningHandler);
            }
        }
예제 #10
0
        public void Start(IScene scene)
        {
            m_scene = scene;

            m_primMesher = m_scene.GetSceneModule<IPrimMesher>();
            if (m_primMesher == null)
            {
                m_log.Error("Objects requires an IPrimMesher");
                return;
            }

            m_permissions = m_scene.GetSceneModule<LLPermissions>();
            if (m_permissions == null)
            {
                m_log.Error("Objects requires LLPermissions");
                return;
            }

            // Optional modules
            m_physics = m_scene.GetSceneModule<IPhysicsEngine>();
            m_lslScriptEngine = m_scene.GetSceneModule<ILSLScriptEngine>();
            m_inventory = m_scene.GetSceneModule<Inventory>();

            // Collision handler
            if (m_physics != null && m_lslScriptEngine != null)
            {
                m_physics.OnEntityCollision += EntityCollisionHandler;
            }

            m_udp = m_scene.GetSceneModule<LLUDP>();
            if (m_udp != null)
            {
                m_udp.AddPacketHandler(PacketType.ObjectAdd, ObjectAddHandler);
                m_udp.AddPacketHandler(PacketType.ObjectAttach, ObjectAttachHandler);
                m_udp.AddPacketHandler(PacketType.ObjectDrop, ObjectDropHandler);
                m_udp.AddPacketHandler(PacketType.ObjectDuplicate, ObjectDuplicateHandler);
                m_udp.AddPacketHandler(PacketType.ObjectName, ObjectNameHandler);
                m_udp.AddPacketHandler(PacketType.ObjectSelect, ObjectSelectHandler);
                m_udp.AddPacketHandler(PacketType.ObjectDeselect, ObjectDeselectHandler);
                m_udp.AddPacketHandler(PacketType.ObjectGrab, ObjectGrabHandler);
                m_udp.AddPacketHandler(PacketType.ObjectGrabUpdate, ObjectGrabUpdateHandler);
                m_udp.AddPacketHandler(PacketType.ObjectDeGrab, ObjectDeGrabHandler);
                m_udp.AddPacketHandler(PacketType.ObjectLink, ObjectLinkHandler);
                m_udp.AddPacketHandler(PacketType.ObjectDelink, ObjectDelinkHandler);
                m_udp.AddPacketHandler(PacketType.ObjectShape, ObjectShapeHandler);
                m_udp.AddPacketHandler(PacketType.ObjectFlagUpdate, ObjectFlagUpdateHandler);
                m_udp.AddPacketHandler(PacketType.ObjectExtraParams, ObjectExtraParamsHandler);
                m_udp.AddPacketHandler(PacketType.ObjectImage, ObjectImageHandler);
                m_udp.AddPacketHandler(PacketType.ObjectPermissions, ObjectPermissionsHandler);
                m_udp.AddPacketHandler(PacketType.Undo, UndoHandler);
                m_udp.AddPacketHandler(PacketType.Redo, RedoHandler);
                m_udp.AddPacketHandler(PacketType.MultipleObjectUpdate, MultipleObjectUpdateHandler);
                m_udp.AddPacketHandler(PacketType.RequestObjectPropertiesFamily, RequestObjectPropertiesFamilyHandler);

                m_scene.AddInterestListHandler(OBJECT_UPDATE, new InterestListEventHandler { CombineCallback = ObjectUpdateCombiner, SendCallback = SendEntityPackets });
                m_scene.AddInterestListHandler(OBJECT_REMOVE, new InterestListEventHandler { CombineCallback = ObjectUpdateCombiner, SendCallback = SendKillPacket });

                m_scene.OnEntityAddOrUpdate += EntityAddOrUpdateHandler;
                m_scene.OnEntityRemove += EntityRemoveHandler;
                m_scene.OnPresenceAdd += PresenceAddHandler;
            }

            m_proxyPrim = new Primitive();
            m_proxyPrim.PrimData = ObjectManager.BuildBasicShape(PrimType.Box);
        }