コード例 #1
0
 /// <summary>
 /// Start the scripts contained in all the prims in this group.
 /// </summary>
 public void CreateScriptInstances(int? startParam, ScriptStartFlags startFlags,
         string engine, int stateSource, ICompilationListener listener)
 {
     // Don't start scripts if they're turned off in the region!
     if (!m_scene.RegionInfo.RegionSettings.DisableScripts)
     {
         m_childParts.ForEachPart((SceneObjectPart part) => {
             part.Inventory.CreateScriptInstances(startParam, startFlags, engine, stateSource, listener);
         });
     }
 }
コード例 #2
0
 /// <summary>
 /// Start the scripts contained in all the prims in this group.
 /// </summary>
 public void CreateScriptInstances(int?startParam, ScriptStartFlags startFlags,
                                   string engine, int stateSource, ICompilationListener listener)
 {
     // Don't start scripts if they're turned off in the region!
     if (!m_scene.RegionInfo.RegionSettings.DisableScripts)
     {
         m_childParts.ForEachPart((SceneObjectPart part) => {
             part.Inventory.CreateScriptInstances(startParam, startFlags, engine, stateSource, listener);
         });
     }
 }
コード例 #3
0
        void EventManager_OnRezScript(uint localID, TaskInventoryItem item, string script,
                                      int?startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener listener)
        {
            //try to find the prim associated with the localid
            SceneObjectPart part = _scene.SceneGraph.GetPrimByLocalId(localID);

            if (part == null)
            {
                _log.ErrorFormat("[Phlox]: Unable to load script {0}. Prim {1} no longer exists",
                                 item.ItemID, localID);
                return;
            }

            ILandObject parcel        = _scene.LandChannel.GetLandObject(part.GroupPosition.X, part.GroupPosition.Y);
            bool        startDisabled = !ScriptsCanRun(parcel, part);

            _scriptLoader.PostLoadUnloadRequest(new LoadUnloadRequest
            {
                RequestType         = LoadUnloadRequest.LUType.Load,
                OldItemId           = item.OldItemID,
                PostOnRez           = (startFlags & ScriptStartFlags.PostOnRez) != 0,
                ChangedRegionStart  = (startFlags & ScriptStartFlags.ChangedRegionStart) != 0,
                StartParam          = startParam,
                StateSource         = (OpenSim.Region.Framework.ScriptStateSource)stateSource,
                Listener            = listener,
                StartLocalDisabled  = startDisabled,
                StartGlobalDisabled = (startFlags & ScriptStartFlags.StartGloballyDisabled) != 0,
                FromCrossing        = (startFlags & ScriptStartFlags.FromCrossing) != 0,
                CallbackParams      = new LoadUnloadRequest.UnloadCallbackParams
                {
                    Prim        = part,
                    ItemId      = item.ItemID,
                    ReplaceArgs = null,     // signals that it is not used
                    AllowedDrop = false,    // not used
                    FireEvents  = false,    // not used
                }
            });
        }
コード例 #4
0
 /// <summary>
 /// Start/Restart a script which is in this prim's inventory.
 /// </summary>
 /// <param name="itemId">
 /// A <see cref="UUID"/>
 /// </param>
 public void CreateScriptInstance(UUID itemId, int? startParam, ScriptStartFlags startFlags, string engine, int stateSource,
     ICompilationListener compilationListener, bool isReload)
 {
     lock (m_items)
     {
         if (m_items.ContainsKey(itemId))
         {
             CreateScriptInstance(m_items[itemId], startParam, startFlags, engine, stateSource, compilationListener, isReload);
         }
         else
         {
             m_log.ErrorFormat(
                 "[PRIM INVENTORY]: " +
                 "Couldn't start script with ID {0} since it couldn't be found for prim {1}, {2}",
                 itemId, m_part.Name, m_part.UUID);
         }
     }
 }
コード例 #5
0
 /// <summary>
 /// Start a script which is in this prim's inventory.
 /// </summary>
 /// <param name="itemId">
 /// A <see cref="UUID"/>
 /// </param>
 public void CreateScriptInstance(UUID itemId, int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, 
     ICompilationListener compilationListener)
 {
     this.CreateScriptInstance(itemId, startParam, startFlags, engine, stateSource, compilationListener, false);
 }
コード例 #6
0
        /// <summary>
        /// Start or reload a script which is in this prim's inventory.
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public void CreateScriptInstance(TaskInventoryItem item, int? startParam, ScriptStartFlags startFlags, string engine, int stateSource,
            ICompilationListener compilationListener, bool isReload)
        {
            if (!m_part.ParentGroup.Scene.Permissions.CanRunScript(item.ItemID, m_part.ParentGroup.UUID, item.OwnerID))
                return;

            if (!m_part.ParentGroup.Scene.RegionInfo.RegionSettings.DisableScripts)
            {
                if (isReload)
                {
                    m_part.ParentGroup.Scene.EventManager.TriggerReloadScript(
                        m_part.LocalId, item.ItemID, String.Empty, startParam, startFlags, engine, stateSource, compilationListener);
                }
                else
                {
                    m_part.ParentGroup.Scene.EventManager.TriggerRezScript(
                        m_part.LocalId, item, String.Empty, startParam, startFlags, engine, stateSource, compilationListener);
                }

                m_part.ParentGroup.AddActiveScriptCount(1);
                m_part.ScheduleFullUpdate(PrimUpdateFlags.PrimFlags);
            }
        }
コード例 #7
0
 /// <summary>
 /// Start all the scripts contained in this prim's inventory
 /// </summary>
 public void CreateScriptInstances(int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener listener)
 {
     lock (m_items)
     {
         foreach (TaskInventoryItem item in Items.Values)
         {
             if ((int)InventoryType.LSL == item.InvType)
             {
                 m_part.AddFlag(PrimFlags.Scripted);
                 CreateScriptInstance(item, startParam, startFlags, engine, stateSource, listener);
             }
         }
     }
 }
コード例 #8
0
        void EventManager_OnReloadScript(uint localID, OpenMetaverse.UUID itemID, string script,
            int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener listener)
        {
            //try to find the prim associated with the localid
            SceneObjectPart part = _scene.SceneGraph.GetPrimByLocalId(localID);
            if (part == null)
            {
                _log.ErrorFormat("[Phlox]: Unable to reload script {0}. Prim {1} no longer exists",
                    itemID, localID);
                return;
            }

            ILandObject parcel = _scene.LandChannel.GetLandObject(part.GroupPosition.X, part.GroupPosition.Y);
            bool startDisabled = !ScriptsCanRun(parcel, part);

            _scriptLoader.PostLoadUnloadRequest(new LoadUnloadRequest
            {
                RequestType = LoadUnloadRequest.LUType.Reload,
                PostOnRez = (startFlags & ScriptStartFlags.PostOnRez) != 0,
                ChangedRegionStart = (startFlags & ScriptStartFlags.ChangedRegionStart) != 0,
                StartParam = startParam,
                StateSource = (OpenSim.Region.Framework.ScriptStateSource)stateSource,
                Listener = listener,
                StartLocalDisabled = startDisabled,
                StartGlobalDisabled = (startFlags & ScriptStartFlags.StartGloballyDisabled) != 0,
                CallbackParams = new LoadUnloadRequest.UnloadCallbackParams
                {
                    Prim = part,
                    ItemId = itemID,
                    ReplaceArgs = null,     // signals that it is not used
                    AllowedDrop = false,    // not used
                    FireEvents = false,     // not used
                }
            });
        }
コード例 #9
0
ファイル: EventManager.cs プロジェクト: BogusCurry/halcyon
 public void TriggerReloadScript(uint localID, UUID itemID, string script, int? startParam, ScriptStartFlags startFlags, string engine,
     int stateSource, ICompilationListener compilationListener)
 {
     ReloadScript handlerReloadScript = OnReloadScript;
     if (handlerReloadScript != null)
     {
         handlerReloadScript(localID, itemID, script, startParam, startFlags, engine,
             stateSource, compilationListener);
     }
 }
コード例 #10
0
ファイル: EventManager.cs プロジェクト: BogusCurry/halcyon
 public void TriggerRezScript(uint localID, TaskInventoryItem item, string script, int? startParam, ScriptStartFlags startFlags, 
     string engine, int stateSource, ICompilationListener compilationListener)
 {
     handlerRezScript = OnRezScript;
     if (handlerRezScript != null)
     {
         handlerRezScript(localID, item, script, startParam,
                 startFlags, engine, stateSource, compilationListener);
     }
 }