예제 #1
0
    public LayerContents NextLayer(string lastLetter)
    {
        var layerLetters = new List <Letter>();

        letters.ForEach(letter => layerLetters.Add(letter));
        return(new LayerContents(layerLetters));
    }
예제 #2
0
 public LetterBasedLayerCreator(Letters lettersObject, IAlphabeticPredictor predictor)
 {
     this.predictor     = predictor;
     this.lettersObject = lettersObject;
     this.lookup        = new Dictionary <string, Letter>();
     lettersObject.ForEach(letter =>
     {
         lookup[letter.letter] = letter;
         letters.Add(letter.letter);
     });
 }
예제 #3
0
        public void AddLetter(Key key)
        {
            if (!CanType(key.ToString().ToLower()[0]))
            {
                return;
            }

            int xOffset = 0;

            Letters.ForEach(x => { xOffset += x.Width; });

            var gm = new GameMessage()
            {
                Skin     = GetASCII(key),
                PreciseX = this.PreciseX + xOffset,
                PreciseY = this.PreciseY
            };

            Letters.Add(gm);
            LetterSequence += key.ToString().ToLower();
            RecalculatePoints();
        }
예제 #4
0
        public void AddSpace()
        {
            if (!CanType(' '))
            {
                return;
            }

            int xOffset = 0;

            Letters.ForEach(x => { xOffset += x.Width; });

            var gm = new GameMessage()
            {
                Skin     = "   ",
                PreciseX = this.PreciseX + xOffset,
                PreciseY = this.PreciseY
            };

            Letters.Add(gm);
            LetterSequence += " ";
            RecalculatePoints();
        }
예제 #5
0
    // this class managing physical layout, so should probs handle zoffset, just
    // know it's a new logical layer?
    public string Arrange(float zOffset)
    {
        layers += 1;
        var ySpacing = 0.06f;
        var xSpacing = 0.1f;
        var yOffset  = -1.45f;
        var xOffset  = 0f;
        var slots    = 6;
        var index    = 0;
        var xStart   = -(xSpacing * slots) / 2;
        var yStart   = -(ySpacing * slots) / 2;
        var x        = xStart + xOffset;
        var y        = yStart + yOffset;
        var xIndex   = 0;
        var z        = -1f + zOffset;

        string placement = "placed: ";

        letters.ForEach((letter) =>
        {
            xIndex = index % slots;
            if (xIndex == 0)
            {
                y -= ySpacing;
                x  = xStart + xOffset;
            }
            else
            {
                x += xSpacing;
            }
            index     += 1;
            var knob   = knobs.Create(letter, x, y, z);
            placement += knob.Name + ", ";
        });
        return(placement);
    }
예제 #6
0
 public void Dispose()
 {
     SegmentedCode?.Dispose();
     Letters?.ForEach(t => t.Dispose());
 }