Example #1
0
    void Restart()
    {
        Dictionary <Color, int> nbColors = new Dictionary <Color, int>()
        {
            { Color.red, 0 },
            { Color.blue, 0 },
            { Color.black, 0 }
        };

        bool[] haveFil = Enumerable.Repeat(true, 3 * nbPanneaux).ToArray();
        for (int i = 0; i < 3; i++)
        {
            haveFil[i] = false;
        }

        while (!CheckRepartition(haveFil))
        {
            haveFil.Shuffle();
        }

        List <Panneau.Fil?> fils = new List <Panneau.Fil?>(3 * nbPanneaux);

        for (int i = 0; i < fils.Count; i++)
        {
            if (haveFil[i])
            {
                Color col = nbColors.Keys.RandomItem();
                int   tar = Random.Range(0, 3);

                fils[i] = new Panneau.Fil
                {
                    color   = col,
                    target  = tar,
                    mustCut = (tab[col][nbColors[col]++] & (1 << tar)) != 0,
                    isCut   = false
                };
            }
            else
            {
                fils[i] = null;
            }
        }

        panneaux = new Panneau[nbPanneaux];
        for (int i = 0; i < nbPanneaux; i++)
        {
            Panneau panneau = Instantiate(prefabPanneau);
            panneau.SetModule(this);
            panneau.SetLabels(i);
            panneau.SetFils(fils.GetRange(3 * i, 3));
            panneaux[i] = panneau;
        }
    }
Example #2
0
        private void CreateUserInterfaceAndCommands()
        {
            try
            {
                WorkSpace dsWorkSpace = AppDs.GetWorkspace("Drafting and Annotation");

                dsWorkSpace.Activate();

                object[] objects = (object[])dsWorkSpace.GetRibbonTabs();
                int      length  = objects.Length + 1;

                ////Add a New Tab
                RibbonTab ribbonTab = dsWorkSpace.AddRibbonTab(AddinGUID, length, "DsExtension", "DsExtension");

                if (ribbonTab != null)
                {
                    RibbonPanel Panneau; RibbonRow LigneBase; RibbonRowPanel Colonne; RibbonRow Ligne; RibbonCommandButton Btn;

                    Panneau   = ribbonTab.InsertRibbonPanel(AddinGUID, 1, "Sw", "Sw");
                    LigneBase = Panneau.InsertRibbonRow(AddinGUID, "A");
                    Colonne   = LigneBase.InsertRibbonRowPanel(AddinGUID, "AA");

                    // Première colonne
                    Ligne = Colonne.InsertRibbonRow(AddinGUID, "AAA");
                    var CmdNettoyerDvp = new Cmds.CmdNettoyerDvp(AppDs, AddinGUID);
                    CmdNettoyerDvp.registerCommand();
                    ListeCmds.Add(CmdNettoyerDvp);
                    Btn = Ligne.InsertRibbonCommandButton(AddinGUID, dsRibbonButtonStyle_e.dsRibbonButtonStyle_SmallWithText, CmdNettoyerDvp.ItemName(), CmdNettoyerDvp.UserCommandID());

                    Ligne = Colonne.InsertRibbonRow(AddinGUID, "AAB");
                    var CmdSimplifierSpline = new Cmds.CmdSimplifierSpline(AppDs, AddinGUID);
                    CmdSimplifierSpline.registerCommand();
                    ListeCmds.Add(CmdSimplifierSpline);
                    Btn = Ligne.InsertRibbonCommandButton(AddinGUID, dsRibbonButtonStyle_e.dsRibbonButtonStyle_SmallWithText, CmdSimplifierSpline.ItemName(), CmdSimplifierSpline.UserCommandID());

                    Ligne = Colonne.InsertRibbonRow(AddinGUID, "AAC");
                    var CmdEffacerGravure = new Cmds.CmdEffacerGravure(AppDs, AddinGUID);
                    CmdEffacerGravure.registerCommand();
                    ListeCmds.Add(CmdEffacerGravure);
                    Btn = Ligne.InsertRibbonCommandButton(AddinGUID, dsRibbonButtonStyle_e.dsRibbonButtonStyle_SmallWithText, CmdEffacerGravure.ItemName(), CmdEffacerGravure.UserCommandID());

                    // Deuxième colonne

                    Panneau   = ribbonTab.InsertRibbonPanel(AddinGUID, 2, "Outils", "Outils");
                    LigneBase = Panneau.InsertRibbonRow(AddinGUID, "B");
                    Colonne   = LigneBase.InsertRibbonRowPanel(AddinGUID, "BB");

                    Ligne = Colonne.InsertRibbonRow(AddinGUID, "BAA");
                    var CmdPoinconner = new Cmds.Poinconner.CmdPoinconner(AppDs, AddinGUID);
                    CmdPoinconner.registerCommand();
                    ListeCmds.Add(CmdPoinconner);
                    Btn = LigneBase.InsertRibbonCommandButton(AddinGUID, dsRibbonButtonStyle_e.dsRibbonButtonStyle_SmallWithText, CmdPoinconner.ItemName(), CmdPoinconner.UserCommandID());

                    // Troisième colonne

                    Panneau   = ribbonTab.InsertRibbonPanel(AddinGUID, 3, "Dev", "Dev");
                    LigneBase = Panneau.InsertRibbonRow(AddinGUID, "R");
                    Colonne   = LigneBase.InsertRibbonRowPanel(AddinGUID, "RR");

                    Ligne = Colonne.InsertRibbonRow(AddinGUID, "RRR");
                    var Cmdlog = new Cmds.CmdLog(AppDs, AddinGUID);
                    Cmdlog.registerCommand();
                    ListeCmds.Add(Cmdlog);
                    Btn = LigneBase.InsertRibbonCommandButton(AddinGUID, dsRibbonButtonStyle_e.dsRibbonButtonStyle_SmallWithText, Cmdlog.ItemName(), Cmdlog.UserCommandID());

                    Ligne = Colonne.InsertRibbonRow(AddinGUID, "RRS");
                    var CmdTest = new Cmds.CmdTest(AppDs, AddinGUID);
                    CmdTest.registerCommand();
                    ListeCmds.Add(CmdTest);
                    Btn = LigneBase.InsertRibbonCommandButton(AddinGUID, dsRibbonButtonStyle_e.dsRibbonButtonStyle_SmallWithText, CmdTest.ItemName(), CmdTest.UserCommandID());
                }
            }
            catch (Exception e)
            { Log.Write(e); }
        }