private void GetGUICadenas(Rect _rectBloc, int _iid, float _fpreviousX, float _foffset) { GUI.Box(new Rect(_rectBloc.x + _rectBloc.width, rectLine.y, 1.0f, (fsizeXBloc * 0.25f) + _foffset + 4.0f), "", "w_p"); bool bcheck = true; string sznameStyle = "cadena"; if(!m_toggleHangs[_iid].block && (_rectBloc.x + fsizeXBloc) <= _fpreviousX - 15.0f) { bcheck = false; sznameStyle = "badCadena"; } float fsizeCadena = 24.0f; bool btemp = GUI.Toggle (new Rect(_rectBloc.x + (_rectBloc.width - (fsizeCadena * 0.5f)), _rectBloc.y + _rectBloc.height + (fsizeXBloc * 0.25f) + _foffset, fsizeCadena, fsizeCadena), m_toggleHangs[_iid].block, "", sznameStyle); if(bcheck && btemp != m_toggleHangs[_iid].block) { m_breset = false; m_toggleHangs[_iid].block = btemp; if(_configurator.GetModule(_iid) != null) { _configurator.GetModule(_iid).SetPrevLocks(m_toggleHangs[_iid].block); if(_configurator.GetModule(_iid).GetPrevModule() != null) { _configurator.GetModule(_iid).GetPrevModule().SetNextLocks(m_toggleHangs[_iid].block); } if(btemp && (_rectBloc.x + fsizeXBloc) < _fpreviousX) { if(_configurator.GetModule(_iid).GetSize() == _configurator.GetModule(_iid).GetPrevModule().GetSize()) { _configurator.CenterDeployAndFeetLimit(); m_breset = true; LockAll(); } else { m_snapHangs = m_toggleHangs[_iid]; m_fXpositionBeforeSnap = m_toggleHangs[_iid].v2position.x + _fpreviousX - (_rectBloc.x + fsizeXBloc); if(_foffset == 0.0f) { _configurator.SetSelectedIndex(_iid); _configurator.UpdateCurrentModule(); } } } } _configurator.SetUISelector(FunctionConf_Dynshelter.UISelector.none); _UISelector = FunctionConf_Dynshelter.UISelector.none; } }
private void CheckAddAndRemoveToggleShelterEditor() { if(_configurator.GetModules().Count > m_toggleHangs.Count) { DynShelterHangs tempDSH = new DynShelterHangs(); m_toggleHangs.Add(tempDSH); _configurator.SetUISelector(FunctionConf_Dynshelter.UISelector.none); _UISelector = FunctionConf_Dynshelter.UISelector.none; for(int i = 0; i < m_toggleHangs.Count; i++) { m_toggleHangs[i].iid = i; } m_currentHangs = m_toggleHangs[_configurator.GetSelectedIndex()]; m_currentHangs.bselected = true; UnselectOtherToggleShelterEditor(); m_breset = true; _configurator.CenterDeployAndFeetLimit(); } else if(_configurator.GetModules().Count < m_toggleHangs.Count) { m_toggleHangs.Remove(m_toggleHangs[m_toggleHangs.Count - 1]); _configurator.SetUISelector(FunctionConf_Dynshelter.UISelector.none); _UISelector = FunctionConf_Dynshelter.UISelector.none; for(int i = 0; i < m_toggleHangs.Count; i++) { m_toggleHangs[i].iid = i; } m_currentHangs = null; LockAll(); UnselectAll(); m_breset = true; } }
private void UnselectAll() { foreach(DynShelterHangs dsh in m_toggleHangs) { dsh.bselected = false; } foreach(DynShelterHangs dsh in m_toggleLimits) { dsh.bselected = false; } _configurator.ActiveLimits(false); m_currentHangs = null; _configurator.SetUISelector(FunctionConf_Dynshelter.UISelector.none); _UISelector = FunctionConf_Dynshelter.UISelector.none; }
public void GetGUIShelterEditor() { if(!m_binitShelterEditor) { InitGUIShelterEditor(); } if(m_snapHangs != null) { _configurator.MoveSelectedModule(true, 3.0f); if(m_fXpositionBeforeSnap < m_snapHangs.v2position.x) { m_snapHangs = null; _configurator.SetSelectedIndex(m_currentHangs.iid); _configurator.UpdateCurrentModule(); } } /*Vector2 cursor = Vector2.zero; #if UNITY_STANDALONE || UNITY_EDITOR cursor = Input.mousePosition; #elif UNITY_ANDROID || UNITY_IPHONE if(Input.touchCount>0 && Input.GetTouch(0).phase == TouchPhase.Ended) { Touch t = Input.GetTouch(0); cursor = t.position; } #endif cursor.y = Screen.height - cursor.y;*/ CheckAddAndRemoveToggleShelterEditor(); GUI.BeginGroup(rectGroupDS,"","backgroundDS"); GUI.Box(rectLine, "", "w_p"); GetGUIOpenAll(); GetGUIColor(); GetGUIStyle(); GUI.Label(new Rect(0.0f, 10.0f, rectGroupDS.width, rectGroupDS.height), _configurator.modelName, "textNameModel"); for(int i = 0; i < m_toggleLimits.Count; i++) { if(i == 0) { m_toggleLimits[i].bselected = GetGUILimitStrip(_configurator.GetMaxLimitBwd(), _configurator.GetLimitBwd(), m_toggleLimits[i].bselected, -1); } else { m_toggleLimits[i].bselected = GetGUILimitStrip(_configurator.GetMaxLimitBwd(), _configurator.GetLimitFwd(), m_toggleLimits[i].bselected, 1); } if(m_toggleLimits[i].bselected && m_snapHangs == null) { m_currentHangs = m_toggleLimits[i]; _configurator.ActiveLimits(true); UnselectOtherToggleShelterEditor(); } } float fpreviousPositionXBloc = 0.0f; for(int i = 0; i < m_toggleHangs.Count; i++) { if(_configurator.GetModule(i) != null) { float fsizeHeight = (fsizeXBloc) + ((_configurator.GetModule(i).GetSize() - 5) * 5.0f); Rect rectBloc = new Rect( Mathf.Abs((_configurator.GetMaxLimitBwd() - _configurator.GetPositionModule(i)).magnitude * (fsizeXBloc * 0.5f)) + ((rectGroupDS.width - rectLine.width) * 0.5f) + (fsizeXBloc * 1.25f), rectLine.y - fsizeHeight, fsizeXBloc * _configurator.GetModule(i).GetIntOffSet(), fsizeHeight); m_toggleHangs[i].v2position = new Vector2(rectBloc.x + (rectBloc.width * 0.5f) + rectGroupDS.x, rectBloc.y + (rectBloc.height * 0.5f) + rectGroupDS.y); bool btemp = m_toggleHangs[i].bselected; float fsizeXFacade = 16.0f; if(_configurator.GetModule(i).GetModuleType() == FunctionConf_Dynshelter.ModuleType.facade) { if(i < 2) { if(!_configurator.GetModule(i).bextrem) { btemp = GUI.Toggle(new Rect((rectBloc.x - rectBloc.width) + (fsizeXFacade) - 5.0f, rectBloc.y, fsizeXFacade, fsizeHeight), m_toggleHangs[i].bselected, "", "facade"); fsizeXFacade = (rectBloc.x - rectBloc.width) + (fsizeXFacade) - 5.0f - 4.0f; } else { btemp = GUI.Toggle(new Rect(rectBloc.x + 8.0f, rectBloc.y, fsizeXFacade, fsizeHeight), m_toggleHangs[i].bselected, "", "facade"); fsizeXFacade = rectBloc.x + 4.0f; } } else { btemp = GUI.Toggle(new Rect(rectBloc.x + (fsizeXBloc * 0.5f) + 2.0f, rectBloc.y, fsizeXFacade, fsizeHeight), m_toggleHangs[i].bselected, "", "facade"); fsizeXFacade = rectBloc.x + (fsizeXBloc * 0.5f) + 2.0f - 4.0f; } } else if(i == 1 && _configurator.GetModule(0).GetModuleType() == FunctionConf_Dynshelter.ModuleType.facade) { btemp = (GUI.Toggle(new Rect(rectBloc.x, rectBloc.y, rectBloc.width - fsizeXFacade, rectBloc.height), m_toggleHangs[i].bselected, "", "bloc")); } else if(i == m_toggleHangs.Count - 2 && _configurator.GetModule(m_toggleHangs.Count - 1) != null && _configurator.GetModule(m_toggleHangs.Count - 1).GetModuleType() == FunctionConf_Dynshelter.ModuleType.facade) { btemp = (GUI.Toggle(new Rect(rectBloc.x + fsizeXFacade, rectBloc.y, rectBloc.width - fsizeXFacade, rectBloc.height), m_toggleHangs[i].bselected, "", "bloc")); } else { btemp = (GUI.Toggle(rectBloc, m_toggleHangs[i].bselected, "", "bloc")); } if (btemp != m_toggleHangs[i].bselected && m_snapHangs == null && m_toggleHangs[i] != m_currentHangs) { m_toggleHangs[i].bselected = btemp; _UISelector = FunctionConf_Dynshelter.UISelector.none; _configurator.SetUISelector(FunctionConf_Dynshelter.UISelector.none); _configurator.SetSelectedIndex(i); _configurator.UpdateCurrentModule(); } if(i != 0 && m_toggleHangs[i - 1].bselected && _configurator.GetModule(i - 1).GetModuleType() != FunctionConf_Dynshelter.ModuleType.facade && _configurator.GetModule(i).GetModuleType() != FunctionConf_Dynshelter.ModuleType.facade) { GetGUICadenas(rectBloc, i, fpreviousPositionXBloc, 0.0f); } if(m_toggleHangs[i].bselected && m_snapHangs == null) { if(i != 0 && _configurator.GetModule(i - 1).GetModuleType() != FunctionConf_Dynshelter.ModuleType.facade && _configurator.GetModule(i).GetModuleType() != FunctionConf_Dynshelter.ModuleType.facade) { GetGUICadenas(rectBloc, i, fpreviousPositionXBloc, fsizeXBloc * 0.6f); } m_currentHangs = m_toggleHangs[i]; _configurator.ActiveLimits(false); float fsizeAdd = 48.0f; if(_configurator.GetModule(i).GetModuleType() != FunctionConf_Dynshelter.ModuleType.facade) { if(_configurator.CanAddNext()) { if(_UISelector != FunctionConf_Dynshelter.UISelector.addNext) { if(GUI.Button (new Rect((rectBloc.x - fsizeAdd) - (rectBloc.width * 0.25f), rectBloc.y + rectBloc.height, fsizeAdd, fsizeAdd), "", "addDS")) { _UISelector = FunctionConf_Dynshelter.UISelector.addNext; _configurator.SetUISelector(_UISelector); _configurator.setNextInsertion(true); } } else if(_UISelector == FunctionConf_Dynshelter.UISelector.addNext) { GUI.Box (new Rect((rectBloc.x - fsizeAdd) - (rectBloc.width * 0.25f), rectBloc.y + rectBloc.height, fsizeAdd, fsizeAdd), "", "addDSOn"); } } if(_configurator.CanAddPrev()) { if(_UISelector != FunctionConf_Dynshelter.UISelector.addPrev) { if(GUI.Button (new Rect(rectBloc.x + rectBloc.width + (rectBloc.width * 0.25f), rectBloc.y + rectBloc.height, fsizeAdd, fsizeAdd), "", "addDS")) { _UISelector = FunctionConf_Dynshelter.UISelector.addPrev; _configurator.SetUISelector(_UISelector); _configurator.setNextInsertion(false); } } else if(_UISelector == FunctionConf_Dynshelter.UISelector.addPrev) { GUI.Box (new Rect(rectBloc.x + rectBloc.width + (rectBloc.width * 0.25f), rectBloc.y + rectBloc.height, fsizeAdd, fsizeAdd), "", "addDSOn"); } } } if(_configurator.GetNumberBloc() > 2 || _configurator.GetCurrentModule().GetModuleType() == FunctionConf_Dynshelter.ModuleType.facade) { if(i == 0 || i == m_toggleHangs.Count - 1 || (_configurator.GetModule(i - 1) != null && _configurator.GetModule(i - 1).GetSize() == _configurator.GetModule(i).GetSize() && _configurator.GetModule(i - 1).GetModuleType() != FunctionConf_Dynshelter.ModuleType.facade) || (_configurator.GetModule(i + 1) != null && _configurator.GetModule(i + 1).GetSize() == _configurator.GetModule(i).GetSize() && _configurator.GetModule(i + 1).GetModuleType() != FunctionConf_Dynshelter.ModuleType.facade)) { float fsizeDelete = 24.0f; float fXposition = 0.0f;//_configurator.GetModule(i).GetModuleType() == FunctionConf_Dynshelter.ModuleType.facade ? fsizeXFacade : 0.0f; if(_configurator.GetModule(i).GetModuleType() == FunctionConf_Dynshelter.ModuleType.facade) { fXposition = fsizeXFacade; } else { fXposition = rectBloc.x + (rectBloc.width * 0.5f) - (fsizeDelete * 0.5f); } if(GUI.Button (new Rect(fXposition, rectLine.y - ((fsizeXBloc * 0.5f) + (_configurator.GetModule(m_toggleHangs.Count - 1).GetSize() * 5.0f) + fsizeDelete), fsizeDelete, fsizeDelete), "", "deleteBloc")) { _configurator.RemoveModule(i); } } } UnselectOtherToggleShelterEditor(); } fpreviousPositionXBloc = rectBloc.x; } } MoveToggleShetlterEditor(); GUI.EndGroup(); }
private void InitGUIShelterEditor() { //rectGroupDS = new Rect((Screen.width * 0.5f) - (Screen.width * 0.8f * 0.5f), Screen.height * 0.06f, Screen.width * 0.8f, Screen.height * 0.42f); rectGroupDS = new Rect((Screen.width * 0.5f) - (572.5f * 0.755f), Screen.height * 0.06f, 1145.0f * 0.755f, 418.0f * 0.725f); fsizeXBloc = 48.0f; float fsizeXlineLimit = ((_configurator.GetMaxLimitBwd() - _configurator.GetMaxLimitFwd()).magnitude * (fsizeXBloc * 0.5f)); fsizeXlineLimit += (rectGroupDS.width - fsizeXlineLimit) * 0.5f; rectLine = new Rect(((rectGroupDS.width - fsizeXlineLimit) * 0.5f), rectGroupDS.height * 0.425f, fsizeXlineLimit, 1.0f); for(int i = 0; i < 2; i++) { m_toggleLimits.Add(new DynShelterHangs()); m_toggleLimits[i].blimit = true; m_toggleLimits[i].iid = i; } m_currentHangs = m_toggleLimits[0]; m_currentHangs.bselected = true; for(int i = 0; i < _configurator.GetModules().Count; i++) { m_toggleHangs.Add(new DynShelterHangs()); m_toggleHangs[i].iid = i; } _configurator.CenterDeployAndFeetLimit(); m_binitShelterEditor = true; m_breset = true; }