示例#1
0
        private void SetStickerDefs(string schemeString, string stickerDefsString)
        {
            var scheme = new ColorScheme();

            if (schemeString != null)
            {
                schemeString = schemeString.Replace(" ", "")
                               .Replace("%20", "");
                scheme = new ColorScheme(schemeString.Split('-'));
            }

            // default solved cube
            var cornerFaces = Enumerable.Range(1, 5)
                              .Select(faceNum => new[] { ColorScheme.Faces[0], ColorScheme.Faces[faceNum], ColorScheme.Faces[(faceNum + 1) % 5] })
                              .ToArray();

            // sticker formats expected in format: CharCharChar,CharCharChar,... where Char represents a face
            if (stickerDefsString == null)
            {
                stickerDefsString = "uffl,uflbl,ublbr,ubrfr,ufrf";
            }
            stickerDefsString = stickerDefsString.ToLower()
                                .Replace("br", "R")
                                .Replace("bl", "L")
                                .Replace("fr", "r")
                                .Replace("fl", "l");

            CornerStickerDefs = stickerDefsString
                                .Split(',')
                                .Select(PieceDef => PieceDef.ToCharArray()
                                        .Select(stickerFace => scheme.GetFace(stickerFace))
                                        .ToArray())
                                .ToArray();
        }
示例#2
0
 internal static PolyPiece Create(PieceDef piece)
 {
     return(new PolyPiece {
         Name = piece.Name,
         Notation = piece.HelpLookup.SafeLookup(HelpKinds.Notation)?.Value ?? "",
         Description = piece.HelpLookup.SafeLookup(HelpKinds.Description)?.Value ?? "",
         Help = piece.HelpLookup.SafeLookup(HelpKinds.Help)?.Value ?? "",
         IsDummy = piece.IsDummy,
     });
 }
示例#3
0
        private void SetStickerDefs(string schemeString, string stickerDefsString)
        {
            var scheme = new ColorScheme();


            if (schemeString != null)
            {
                schemeString = schemeString.Replace(" ", "")
                               .Replace("%20", "");
                scheme = new ColorScheme(schemeString.Split('-'));
            }


            // default solved cube
            if (stickerDefsString == null)
            {
                stickerDefsString = "u;uf,ufl,ubl,ubr,ufr;uffl,uflbl,ublbr,ubrfr,ufrf";
            }


            CenterColor = scheme.GetFace(char.Parse(stickerDefsString.Split(';')[0]));

            stickerDefsString = stickerDefsString.ToLower()
                                .Replace("br", "R")
                                .Replace("bl", "L")
                                .Replace("fr", "r")
                                .Replace("fl", "l");

            EdgeStickerDefs = stickerDefsString
                              .Split(';')[1]
                              .Split(',')
                              .Select(PieceDef => PieceDef.ToCharArray()
                                      .Select(stickerFace => scheme.GetFace(stickerFace))
                                      .ToArray())
                              .ToArray();

            CornerStickerDefs = stickerDefsString
                                .Split(';')[2]
                                .Split(',')
                                .Select(PieceDef => PieceDef.ToCharArray()
                                        .Select(stickerFace => scheme.GetFace(stickerFace))
                                        .ToArray())
                                .ToArray();
        }