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); } } }
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); } } }
void ChangeToColorGrid() { EditableElements target = activeEditables[cMenu.SelectedOption]; ColorContainerStruct ccs = secManager.GetColorAssignById(target.member).coresEditaveis[target.inIndex]; ChangeColorMainAction(ccs); estado = EstadoDoMenu.colorGrid; }
void RestartMenu(EditableElements target) { activeEditables = ActiveEditables; cMenu.FinishHud(); int indexOfElement = GetElementIndexOf(target); cMenu.StartHud(secManager, MainAction, ChangeAction, EscapeAction, activeEditables, selectIndex: indexOfElement); }
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); }
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); }
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); }
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 }); }); }
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); }
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); } }
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 ); } }