private void PushContext(ProgramContext context) { UnityEngine.Debug.Log("kOS: Pushing context staring with: " + context.GetCodeFragment(0).FirstOrDefault()); SaveAndClearPointers(); contexts.Add(context); currentContext = contexts.Last(); if (contexts.Count > 1) { shared.Interpreter.SetInputLock(true); } }
public List <string> GetCodeFragment(int contextLines) { return(_currentContext.GetCodeFragment(contextLines)); }
private void PushContext(ProgramContext context) { UnityEngine.Debug.Log("kOS: Pushing context staring with: " + context.GetCodeFragment(0).FirstOrDefault()); SaveAndClearPointers(); contexts.Add(context); currentContext = contexts.Last(); if (contexts.Count > 1) { shared.Interpreter.SetInputLock(true); } }
private void PopContext() { UnityEngine.Debug.Log("kOS: Popping context " + contexts.Count); if (contexts.Any()) { // remove the last context var contextRemove = contexts.Last(); contexts.Remove(contextRemove); contextRemove.DisableActiveFlyByWire(shared.BindingMgr); UnityEngine.Debug.Log("kOS: Removed Context " + contextRemove.GetCodeFragment(0).FirstOrDefault()); if (contexts.Any()) { currentContext = contexts.Last(); currentContext.EnableActiveFlyByWire(shared.BindingMgr); RestorePointers(); UnityEngine.Debug.Log("kOS: New current context " + currentContext.GetCodeFragment(0).FirstOrDefault()); } else { currentContext = null; } if (contexts.Count == 1) { shared.Interpreter.SetInputLock(false); } } }