Exemplo n.º 1
0
    void EscapeAction(int index)
    {
        EditableElements target = activeEditables[index];

        if (target.type != EditableType.control && target.member != SectionDataBase.@base)
        {
            FlagSectionDataBase flag = StringForEnum.GetEnum <FlagSectionDataBase>(target.member.ToString());
            if (menusAtivos.HasFlag(flag))
            {
                menusAtivos &= ~flag;

                RestartMenu(GetEditableElementBySdb(target.member));
            }
        }
        else if (target.type == EditableType.control)
        {
            SectionDataBase     sdb  = sdbc.GetChangebleElementWithId(target.member)[target.outIndex].subsection[target.inIndex];
            FlagSectionDataBase flag = StringForEnum.GetEnum <FlagSectionDataBase>(sdb.ToString());
            if (menusAtivos.HasFlag(flag))
            {
                menusAtivos &= ~flag;

                RestartMenu(target);
            }
            else if (target.member != SectionDataBase.@base)
            {
                EscapeAction(index - 1);
            }
        }
    }
Exemplo n.º 2
0
    private void ChangeAction(int change, int index)
    {
        EditableElements target = activeEditables[index];

        if (target.type == EditableType.control)
        {
            if (change != 0)
            {
                SectionDataBase     sdb  = sdbc.GetChangebleElementWithId(target.member)[target.outIndex].subsection[target.inIndex];
                FlagSectionDataBase flag = StringForEnum.GetEnum <FlagSectionDataBase>(sdb.ToString());

                if (change > 0 && !menusAtivos.HasFlag(flag))
                {
                    menusAtivos |= flag;
                }
                else if (change < 0 && menusAtivos.HasFlag(flag))
                {
                    menusAtivos &= ~flag;
                }

                RestartMenu(target);
            }
        }
        else if (target.type == EditableType.mesh || target.type == EditableType.texture)
        {
            if (change != 0)
            {
                ChangeElementMainAction(target, change);
            }
        }
    }
Exemplo n.º 3
0
    void ChangeToColorGrid()
    {
        EditableElements     target = activeEditables[cMenu.SelectedOption];
        ColorContainerStruct ccs    = secManager.GetColorAssignById(target.member).coresEditaveis[target.inIndex];

        ChangeColorMainAction(ccs);
        estado = EstadoDoMenu.colorGrid;
    }
Exemplo n.º 4
0
    void RestartMenu(EditableElements target)
    {
        activeEditables = ActiveEditables;

        cMenu.FinishHud();
        int indexOfElement = GetElementIndexOf(target);

        cMenu.StartHud(secManager, MainAction, ChangeAction, EscapeAction, activeEditables, selectIndex: indexOfElement);
    }
Exemplo n.º 5
0
    EditableElements GetEditableElementBySdb(SectionDataBase sdb)
    {
        EditableElements retorno = new EditableElements();

        for (int i = 0; i < activeEditables.Length; i++)
        {
            if (activeEditables[i].mySDB == sdb && activeEditables[i].type == EditableType.control)
            {
                retorno = activeEditables[i];
            }
        }

        return(retorno);
    }
Exemplo n.º 6
0
    void ControlMainAction(EditableElements target)
    {
        SectionDataBase     sdb  = sdbc.GetChangebleElementWithId(target.member)[target.outIndex].subsection[target.inIndex];
        FlagSectionDataBase flag = StringForEnum.GetEnum <FlagSectionDataBase>(sdb.ToString());

        if (menusAtivos.HasFlag(flag))
        {
            menusAtivos &= ~flag;
        }
        else
        {
            menusAtivos |= flag;
        }

        RestartMenu(target);
    }
Exemplo n.º 7
0
    int GetElementIndexOf(EditableElements e)
    {
        int retorno = -1;

        for (int i = 0; i < activeEditables.Length; i++)
        {
            EditableElements elegible = activeEditables[i];

            if (elegible.type == e.type &&
                elegible.member == e.member &&
                elegible.inIndex == e.inIndex)
            {
                retorno = i;
            }
        }

        return(retorno);
    }
Exemplo n.º 8
0
    private void ChangeToColorCircle(Color C)
    {
        myGetColor.transform.parent.gameObject.SetActive(true);
        estado = EstadoDoMenu.colorCircle;

        EventAgregator.AddListener(EventKey.changeColorPicker, OnChangeColorPicker);

        SupportSingleton.Instance.InvokeOnEndFrame(() =>
        {
            myGetColor.SetColor(C);

            EditableElements target = activeEditables[cMenu.SelectedOption];

            MessageAgregator <MsgOpenColorMenu> .Publish(new MsgOpenColorMenu()
            {
                reg = secManager.GetTargetColorReg
            });
        });
    }
Exemplo n.º 9
0
    void ChangeElementMainAction(EditableElements target, int changeVal = 1)
    {
        ChangebleElement[] ce = sdbc.GetChangebleElementWithId(target.member);

        if (ce[0] is SimpleChangebleMesh)
        {
            secManager.TrocaMesh(target.member, ce as SimpleChangebleMesh[], changeVal);
        }
        else if (ce[0] is CombinedChangebleMesh)
        {
            CombinedChangebleMesh[] ccm    = ce as CombinedChangebleMesh[];
            CombinedChangebleMesh[] doComb = sdbc.GetCombinedMeshDbWithID(ccm[0].combinedWithDb);
            secManager.ChangeCombinedMesh(target.member, ccm, doComb, changeVal);
        }
        else if (ce[0] is MaskedTexture)
        {
            secManager.ChangeTextureElement(target.member, ce as MaskedTexture[], changeVal);
        }

        RestartMenu(target);
    }
Exemplo n.º 10
0
    private void OnSelectGlobalColor(SelectGlobalColorMessage obj)
    {
        transitoryReg = obj.indexOfGlobal;
        estado        = EstadoDoMenu.globalizationMenu;

        EndGlobalColorMenu();
        globalMenu.StartHud(OpcoesDoGlobalizationMenu,
                            new string[3] {
            "Selecionar a cor e não usar registro", "Selecionar a cor e usar o registro", "Voltar para o menu anterior"
        });

        EditableElements target = activeEditables[cMenu.SelectedOption];

        Debug.Log(target.member + " : " + target.inIndex);

        ColorContainerStruct ccs = secManager.GetColorAssignById(target.member).coresEditaveis[target.inIndex];

        if (ccs.coresEditaveis.registro == obj.indexOfGlobal)
        {
            globalMenu.ChangeSelectionTo(1);
        }
    }
Exemplo n.º 11
0
    private void MainAction(int index)
    {
        EditableElements target = activeEditables[index];

        if (target.type == EditableType.control)
        {
            ControlMainAction(target);
        }
        else if (target.type == EditableType.mesh || target.type == EditableType.texture)
        {
            ChangeElementMainAction(target);
        }
        else if (target.type == EditableType.color)
        {
            ColorContainerStruct ccs = secManager.GetColorAssignById(target.member).coresEditaveis[target.inIndex];

            secManager.StartChangeColor(target.member, target.inIndex, ccs);
            ChangeColorMainAction(ccs);
            estado = EstadoDoMenu.colorGrid;
        }
        else if (target.type == EditableType.personagemBase)
        {
            if (secManager == secManagerH_Base)
            {
                ChangeBaseCharacter(false);
                DirectionalCamera cDir = CameraApplicator.cam.Cdir;
                //CameraAplicator.cam.FocusBasicCam(secManager.transform, 0.2f, .7f);
                CameraApplicator.cam.Cdir.VarVerticalHeightPoint = .7f;
                SupportSingleton.Instance.InvokeOnEndFrame(() =>
                {
                    secManager.SetColorsByAssign(secManagerH_Base.ColorAssign);
                });
            }
            else if (secManager == secManagerM_Base)
            {
                ChangeBaseCharacter(true);
                DirectionalCamera cDir = CameraApplicator.cam.Cdir;
                //CameraAplicator.cam.FocusBasicCam(secManager.transform, 0.2f, .7f);
                CameraApplicator.cam.Cdir.VarVerticalHeightPoint = .7f;
                SupportSingleton.Instance.InvokeOnEndFrame(() =>
                {
                    CameraApplicator.cam.Cdir.VarVerticalHeightPoint = .7f;
                    secManager.SetColorsByAssign(secManagerM_Base.ColorAssign);
                });
            }
        }
        else if (target.type == EditableType.conclusao)
        {
            estado = EstadoDoMenu.confirmacaoAberta;
            confirmation.StartConfirmationPanel(
                () => {
                cMenu.FinishHud();
                ProvisionalStartGame.InitProvisionalStartGame(
                    testMeshCombiner, secManager
                    );
            },
                () => {
                estado = EstadoDoMenu.main;
            },
                "Iniciar o jogo com esse personagem?",
                hideSelections: true
                );
        }
    }