//------------------------- Raycast ------------------------------ public static RaycastHit2D raycast( Vector2 inOrigin, Vector2 inDiraction, float inDistance, System.Func <Collider2D, bool> inContinueLambda) { XUtils.check(null != inContinueLambda); int theActualResultsCount = Physics2D.RaycastNonAlloc( inOrigin, inDiraction, __hitResults, inDistance ); XUtils.sort(__hitResults, 0, theActualResultsCount, (RaycastHit2D inHitA, RaycastHit2D inHitB) => { return(XUtils.compare(inHitA.distance, inHitB.distance)); }); for (int theIndex = 0; theIndex < theActualResultsCount; ++theIndex) { Collider2D theCollider = __hitResults[theIndex].collider; if (inContinueLambda(theCollider)) { continue; } return(__hitResults[theIndex]); } return(new RaycastHit2D()); }
//-Implementation private void Awake() { XUtils.check(ProgressIndicator); XUtils.check(WorkersAssignemntControl); WorkersAssignemntControl.onPressedAssignWorker += () => { CrewMember theCrewMemberToAssign = XUtils.verify(_carCity).getFirstFreeCrewMember(); if (null == theCrewMemberToAssign) { return; } collectConstructionSiteWorkers(ref __arrayRegister); if (__arrayRegister.getSize() >= _constructionSite.getMaxWorkersPossibleToAssign()) { return; } theCrewMemberToAssign.setConstruction(_constructionSite); }; WorkersAssignemntControl.onPressedWithdrawWorker += () => { collectConstructionSiteWorkers(ref __arrayRegister); if (0 == __arrayRegister.getSize()) { return; } __arrayRegister[0].setConstruction(null); }; }
//--Debug private void validateState() { XUtils.check(_camera); XUtils.check(Vector3.one == _camera.transform.localScale); XUtils.check(null != _cameraSettings || _transitionState.isSet()); }
//-Implementation private void Awake() { XUtils.check(_camera); _cameraSettings = XUtils.verify(_initialSettingsHolder).getSettings(); }
public AnimatedField_Vector3(System.Reflection.FieldInfo inField) { XUtils.check(inField.GetType() == typeof(Vector3)); _object = null; _field = inField; }
//-Implementation private void Awake() { XUtils.check(_buildingsSelectionHierarchicalGrid); XUtils.check(_buildingSelectionUIElementPrefab); XUtils.check(_buildingsGroupSelectionUIElementPrefab); }
public void removeElementsInRange(int inBeginIndex, int inEndIndex, ElementProcessingDelegate inProcessingDelegate) { validateIndex(inBeginIndex); validateIndex(inEndIndex); XUtils.check(inBeginIndex <= inEndIndex); int theLastIndex = getLastIndex(); int theElementsNumToRemove = inEndIndex - inBeginIndex; int theRemovingElementsOffset = theElementsNumToRemove + 1; if (null != inProcessingDelegate) { for (int theIndex = inBeginIndex; theIndex < inEndIndex; ++theIndex) { inProcessingDelegate.Invoke(_elements[theIndex]); } } if (inEndIndex != theLastIndex) { int theLastMovingElementIndex = theLastIndex - theRemovingElementsOffset; for (int theIndex = inBeginIndex; theIndex <= theLastMovingElementIndex; ++theIndex) { _elements[theIndex] = _elements[theIndex + theRemovingElementsOffset]; } } _size -= theElementsNumToRemove; }
static public void setFieldValue <T_ObjectType, T_FieldType>(T_ObjectType inObject, string inFieldName, T_FieldType inFieldValue) where T_ObjectType : class { XUtils.check(null != inObject); getField <T_ObjectType>(inFieldName).SetValue(inObject, inFieldValue); }
//Methods //-API public void setCamera( CameraTypes.CameraSettings inCameraSettings) { XUtils.check(inCameraSettings); internalStopTransition(); internalSetCameraSettings(inCameraSettings); }
public static void sort <T_Type>( T_Type[] inoutArray, int inStartIndex, int inLength, System.Func <T_Type, T_Type, Comparation> inLambda) { XUtils.check(null != inLambda); System.Array.Sort(inoutArray, inStartIndex, inLength, LambdaComparer <T_Type> .getForLambda(inLambda) ); }
//-Internal API internal void addElementToElement( HierarchicalUIElementObject inElement, HierarchicalUIElementObject inSubelement) { XUtils.check(inElement && inSubelement); inSubelement._hierarchicalUIobject = this; inElement._elements.add(inSubelement); implementation_addElementToElement(inElement, inSubelement); }
internal void removeElementFromElement( HierarchicalUIElementObject inElement, HierarchicalUIElementObject inSubelement) { XUtils.check(inElement && inSubelement); XUtils.check(inElement._elements.contains(inSubelement)); implementation_removeElementFromElement(inElement, inSubelement); inElement._elements.removeElement(inSubelement); inSubelement._hierarchicalUIobject = null; }
private void refreshShowingElement() { XUtils.check(_elementShownInGrid); _gridRectTransform.DetachChildren(); foreach (HierarchicalUIElementObject theChildElement in _elementShownInGrid._elements) { XUtils.getComponent <RectTransform>( theChildElement, XUtils.AccessPolicy.ShouldExist ).SetParent(_gridRectTransform, false); } }
public static System.Reflection.FieldInfo getField <T_ObjectType>( string inFieldName, bool inDoCheck = true) { System.Type theType = typeof(T_ObjectType); System.Reflection.FieldInfo theFieldInfo = theType.GetField(inFieldName, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic ); if (inDoCheck) { XUtils.check(null != theFieldInfo, "Cannot find provided field"); } return(theFieldInfo); }
public int Compare(T_Type inA, T_Type inB) { XUtils.check(null != lambda); switch (lambda(inA, inB)) { case Comparation.ALessThenB: return(-1); case Comparation.AEqualsB: return(0); case Comparation.AMoreThenB: return(1); } XUtils.check(false); return(0); }
public ConstructionSiteObject createConstructionSite() { XUtils.check(isPossibleToBuild()); ConstructionSiteObject theConstructionSite = XUtils.createObject( getBuildingScheme().constructionSite, transform ); theConstructionSite.init(_carCity); theConstructionSite.transform.SetParent(transform.parent, true); theConstructionSite.gameObject.layer = gameObject.layer; return(theConstructionSite); }
//NB: Speed is used for ortho size change //TODO: Find some better approach for transition time setup public void setCamera( CameraTypes.CameraSettings inCameraSettings, float inSpeed = 0.0f) { XUtils.check(inCameraSettings); XUtils.check(inSpeed >= 0); internalStopTransition(); if (0.0f == inSpeed) { internalSetCameraSettings(inCameraSettings); } else { internalStartTransition(inCameraSettings, inSpeed); } }
//-Find public Optional <int> findIndex(ElementPredicate inPredicate) { if (null == inPredicate) { return(new Optional <int>()); } XUtils.check(null != inPredicate); int theIndex = 0; foreach (T_ElementType theElement in this) { if (inPredicate.Invoke(theElement)) { return(new Optional <int>(theIndex)); } ++theIndex; } return(new Optional <int>()); }
override protected void implementation_goInto( HierarchicalUIElementObject inElement) { XUtils.check(inElement); if (inElement == _elementShownInGrid) { return; } Optional <int> theWayIndexOfElementToGoInto = _wayUI.getIndexOfElement(inElement); if (theWayIndexOfElementToGoInto.isSet()) { _wayUI.removeWayElementsUpToEnd(theWayIndexOfElementToGoInto.getValue() + 1); } else { _wayUI.addWayElement(createWayElementForElement(inElement)); } showElementInGrid(inElement); }
//TODO: Find how to organize Damage API Classes better public static void applyDamage(GameObject inGameObject, Damage inDamage) { XUtils.check(inGameObject); var theDamageProxy = XUtils.getComponent <DamageProxy>( inGameObject, XUtils.AccessPolicy.JustFind ); if (theDamageProxy) { theDamageProxy.applyDamage(inDamage); return; } var theDurability = XUtils.getComponent <DurabilityComponent>( inGameObject, XUtils.AccessPolicy.JustFind ); if (theDurability) { theDurability.changeHitPoints(-inDamage.damageAmount); } }
//-Implementation void Awake() { //TODO: Remove editor pannels here XUtils.verify(worldUI).initFromGameUI(carCity); XUtils.verify(carCityUI).initFromGameUI(carCity); worldUI.onClickedGoToCarCity += () => { switchToCarCityUI(300.0f); }; carCityUI.onClickedGoToWorld += () => { switchToWorldUI(300.0f); }; _cameraManager = XUtils.verify( FindObjectOfType <CameraManager>() ); _pauseManager = XUtils.verify( FindObjectOfType <PauseManager>() ); XUtils.check(worldCamera); XUtils.check(carCityCamera); switchToWorldUI(); }
private void checkChanges() { XUtils.check(_validation_changesTracker.Equals(_arrayFrom._validation_changesTracker)); }
//Methods //-Child API protected void select() { XUtils.check(_element); XUtils.verify(_hierarchicalGridUIObject).goInto(_element); }
public void removeElement(HierarchicalUIElementObject inElement) { XUtils.check(null != inElement && null != _hierarchicalUIobject); _hierarchicalUIobject.removeElementFromElement(this, inElement); }
//Methods //-API public void addElement(HierarchicalUIElementObject inElement) { XUtils.check(null != inElement && null != _hierarchicalUIobject); _hierarchicalUIobject.addElementToElement(this, inElement); }
internal void goInto(HierarchicalUIElementObject inElement) { XUtils.check(inElement); implementation_goInto(inElement); }
private void validateIndex(int inIndex) { XUtils.check(isValidIndex(inIndex)); //Debug.Log("Trying to remove element that is out of array: " + inIndex); }