예제 #1
0
        internal override void VExecuteStream(string resource, Stream stream, bool runInEditor, Cv_Event runningEvent)
        {
            Cv_Debug.Assert((m_iActiveQueue >= 0 && m_iActiveQueue < NUM_QUEUES), "ScriptManager must have an active script queue.");

            if (stream == null)
            {
                Cv_Debug.Error("Invalid stream in VExecuteStream.");
                return;
            }

            string code;

            using (StreamReader reader = new StreamReader(stream))
            {
                stream.Position = 0;
                code            = reader.ReadToEnd();
            }

            var entity = CaravelApp.Instance.Logic.GetEntity(runningEvent.EntityID);

            Cv_ScriptExecutionRequest request = new Cv_ScriptExecutionRequest();

            request.Code        = code;
            request.Resource    = resource;
            request.Entity      = entity;
            request.Event       = runningEvent;
            request.RunInEditor = runInEditor;

            lock (m_QueuedScriptLists[m_iActiveQueue])
            {
                m_QueuedScriptLists[m_iActiveQueue].AddLast(request);
            }

            Cv_Debug.Log("LuaScript", "Queued script " + resource + " for entity " + (entity != null ? entity.EntityName : "[null]"));
        }
예제 #2
0
        internal override void VExecuteString(string resource, string str, bool runInEditor, Cv_Event runningEvent, Cv_Entity runningEntity)
        {
            Cv_Debug.Assert((m_iActiveQueue >= 0 && m_iActiveQueue < NUM_QUEUES), "ScriptManager must have an active script queue.");

            if (str == null)
            {
                Cv_Debug.Error("Invalid script in VExecuteString.");
                return;
            }

            Cv_ScriptExecutionRequest request = new Cv_ScriptExecutionRequest();

            request.Code        = str;
            request.Resource    = resource;
            request.Entity      = runningEntity;
            request.Event       = runningEvent;
            request.RunInEditor = runInEditor;

            lock (m_QueuedScriptLists[m_iActiveQueue])
            {
                m_QueuedScriptLists[m_iActiveQueue].AddLast(request);
            }

            Cv_Debug.Log("LuaScript", "Queued script " + resource + " for entity " + (runningEntity != null ? runningEntity.EntityName : "[null]"));
        }