예제 #1
0
    public override void OnInteract(TerminalManager manager, TerminalInput interaction)
    {
        switch (interaction)
        {
        case TerminalInput.UP:
            Select(_selected - 1);
            manager.source.PlayOneShot(scrollSound);
            break;

        case TerminalInput.DOWN:
            Select(_selected + 1);
            manager.source.PlayOneShot(scrollSound);
            break;

        case TerminalInput.LEFT:
            break;

        case TerminalInput.RIGHT:
            break;

        case TerminalInput.BACK:
            break;

        case TerminalInput.SELECT:
            manager.SetScreen(GetSelected().nextScreen, false);
            manager.source.PlayOneShot(selectSound);
            break;

        case TerminalInput.ANY:
            break;
        }
    }
예제 #2
0
    public override void OnInteract(TerminalManager manager, TerminalInput interaction)
    {
        switch (interaction)
        {
        case TerminalInput.UP:
            break;

        case TerminalInput.DOWN:
            break;

        case TerminalInput.LEFT:
            break;

        case TerminalInput.RIGHT:
            break;

        case TerminalInput.BACK:
            manager.ReturnToPrevious(true);
            break;

        case TerminalInput.SELECT:
            break;

        case TerminalInput.ANY:
            break;
        }
    }
예제 #3
0
    public override void OnInteract(TerminalManager manager, TerminalInput interaction)
    {
        switch (interaction)
        {
        case TerminalInput.UP:
            _speed = Mathf.Clamp01(_speed + 0.05F);
            break;

        case TerminalInput.DOWN:
            _speed = Mathf.Clamp01(_speed - 0.05F);
            break;

        case TerminalInput.LEFT:
            _seed = Mathf.Clamp(_seed - 1, 2, 30);
            break;

        case TerminalInput.RIGHT:
            _seed = Mathf.Clamp(_seed + 1, 2, 30);
            break;

        case TerminalInput.BACK:
            manager.ReturnToPrevious(true);
            break;

        case TerminalInput.SELECT:
            manager.source.PlayOneShot(thinkSound);
            ResetTextures();
            break;

        case TerminalInput.ANY:
            break;
        }
    }
예제 #4
0
    void Start()
    {
        _history      = FindObjectOfType <TerminalHistory>();
        _input        = FindObjectOfType <TerminalInput>();
        _inputManager = FindObjectOfType <TerminalInputManager>();

        _hasInitialized = false;
    }
예제 #5
0
        public void ShouldMatch()
        {
            TerminalInput input;


            input = new TerminalInput('a');

            Assert.IsTrue(input.Match('a'));
            Assert.IsTrue(input.Match(new TerminalInput('a')));
        }
예제 #6
0
        public void ShouldMatch()
        {
            TerminalInput input;


            input = new TerminalInput(new Token("C", "V"));

            Assert.IsTrue(input.Match(new Token("C", "V")));
            Assert.IsTrue(input.Match(new TerminalInput(new Token("C", "V"))));
        }
예제 #7
0
        public void ShoudEquals()
        {
            TerminalInput a, b;

            a = new TerminalInput(new Token("C", "V"));
            b = new TerminalInput(new Token("C", "V"));

            Assert.IsTrue(a.Equals(b));
            Assert.IsTrue(b.Equals(a));
        }
예제 #8
0
        public void ShoudEquals()
        {
            TerminalInput a, b;

            a = new TerminalInput('a');
            b = new TerminalInput('a');

            Assert.IsTrue(a.Equals(b));
            Assert.IsTrue(b.Equals(a));
        }
예제 #9
0
        public void ShoudNotEquals()
        {
            TerminalInput a, b;

            a = new TerminalInput(new Token("C", "V"));
            b = new TerminalInput(new Token("C", "v"));

            Assert.IsFalse(a.Equals(b));
            Assert.IsFalse(a.Equals(new NonTerminalInput("A")));
            Assert.IsFalse(a.Equals(new EOSInput <char>()));
        }
예제 #10
0
        public void ShouldNotMatch()
        {
            TerminalInput input;


            input = new TerminalInput(new Token("C", "V"));

            Assert.IsFalse(input.Match(new Token("C", "v")));
            Assert.IsFalse(input.Match(new TerminalInput(new Token("C", "v"))));
            Assert.IsFalse(input.Match(new NonTerminalInput("a")));
            Assert.IsFalse(input.Match(new EOSInput <Token>()));
        }
예제 #11
0
        public void ShouldNotMatch()
        {
            TerminalInput input;


            input = new TerminalInput('a');

            Assert.IsFalse(input.Match('b'));
            Assert.IsFalse(input.Match(new TerminalInput('b')));
            Assert.IsFalse(input.Match(new NonTerminalInput("a")));
            Assert.IsFalse(input.Match(new EOSInput <char>()));
        }
예제 #12
0
        /// <summary>
        /// Return input rectangle.
        /// </summary>
        /// <param name="index">Index of rectangle.</param>
        public Rectangle GetInputRect(int index)
        {
            TerminalInput input = this[index];
            int           Y     = 0;

            for (int inputIndex = 0; inputIndex < index; inputIndex++)
            {
                Y += this[inputIndex].Height + 5;
            }
            Rectangle Rect = new Rectangle(input.BaseWidth, Y, ValidateRect.Width, input.Height + 5);

            return(Rect);
        }
예제 #13
0
 /// <summary>
 /// Add input.
 /// </summary>
 /// <param name="input">Input object to add.</param>
 /// <param name="historyInput">this input is history input. Add input in history if true.</param>
 public void AddInput(TerminalInput input, bool historyInput)
 {
     inputs.Add(input);
     if (historyInput && !string.IsNullOrEmpty(input))
     {
         History.RemoveAt(History.Count - 1);
         History.Add(input);
         History.Add("");
         HistoryIndex = History.Count - 1;
     }
     Invalidate(ClientRectangle);
     ScrollCaret();
 }
예제 #14
0
        /// <summary>
        /// Draw input.
        /// </summary>
        /// <param name="graph">Graphics object to use.</param>
        /// <param name="index">Index of input.</param>
        private void DrawInput(Graphics graph, int index)
        {
            TerminalInput input = this[index];

            Rectangle rect = GetInputRect(index);

            rect.Location = new Point(rect.X - HorScroll.Value, rect.Y - VerScroll.Value);

            //Base.
            DrawBase(graph, input, rect.Y);

            //Input.
            using (SolidBrush ForeBrush = new SolidBrush(input.ForeColor)) {
                graph.DrawString(input, InputFont, ForeBrush, rect);
            }
        }
예제 #15
0
 public override void OnInteract(TerminalManager manager, TerminalInput interaction)
 {
 }
예제 #16
0
 /// <summary>
 /// Draw base.
 /// </summary>
 /// <param name="graph">Graphics object to use.</param>
 /// <param name="input">Input object to draw.</param>
 /// <param name="y">Y coordinate to use.</param>
 private void DrawBase(Graphics graph, TerminalInput input, int y)
 {
     using (SolidBrush ForeBrush = new SolidBrush(input.BaseForeColor)) {
         graph.DrawString(input.Base, BaseFont, ForeBrush, 0 - HorScroll.Value, y);
     }
 }
예제 #17
0
 public abstract void OnInteract(TerminalManager manager, TerminalInput interaction);
예제 #18
0
 private void AttemptInteraction(TerminalInput input)
 {
     interaction?.Invoke(this, input);
     _currentScreen?.GetComponent <TerminalBehavior>()?.OnInteract(this, input);
 }