void CloseWindow() { this.SetActive(false); CurrentState = States.NeedsEntity; _progradeDV = 0; _radialDV = 0; if (_orbitWidget != null) { _uiState.SelectedSysMapRender.UIWidgets.Remove(nameof(_orbitWidget)); _orbitWidget = null; } if (_moveWidget != null) { _uiState.SelectedSysMapRender.UIWidgets.Remove(nameof(_moveWidget)); _moveWidget = null; } }
void EntitySelected() { OrderingEntityState = _uiState.LastClickedEntity; if (OrderingEntityState.Entity.HasDataBlob <OrbitDB>()) { _massCurrentBody = Entity.GetSOIParentEntity(OrderingEntityState.Entity).GetDataBlob <MassVolumeDB>().MassDry; } else { var foo = OrderingEntityState.Entity.GetDataBlob <NewtonMoveDB>(); if (foo == null) { } else { _massCurrentBody = foo.ParentMass; } } //else if(OrderingEntity.Entity.HasDataBlob<newton>()) CurrentState = States.NeedsTarget; _massOrderingEntity = OrderingEntityState.Entity.GetDataBlob <MassVolumeDB>().MassDry; _stdGravParamCurrentBody = GameConstants.Science.GravitationalConstant * (_massCurrentBody + _massOrderingEntity) / 3.347928976e33; if (_moveWidget == null) { _moveWidget = new WarpMoveOrderWidget(_uiState, OrderingEntityState.Entity); _uiState.SelectedSysMapRender.UIWidgets.Add(nameof(_moveWidget), _moveWidget); } DepartureCalcs(); if (OrderingEntityState.Entity.HasDataBlob <NewtonThrustAbilityDB>()) { var db = OrderingEntityState.Entity.GetDataBlob <NewtonThrustAbilityDB>(); _newtonUI = new NewtonionOrderUI(db, _massOrderingEntity); } //debug code: //var sgpCur = _orderEntityOrbit.GravitationalParameterAU; //var ralitiveVel1 = OrbitProcessor.InstantaneousOrbitalVelocityVector_AU(_orderEntityOrbit, _departureDateTime); //var ralPosCBAU = OrderingEntityState.Entity.GetDataBlob<PositionDB>().RelativePosition_AU; //var smaCurrOrbtAU = _orderEntityOrbit.SemiMajorAxisAU; //var ralitiveVel2 = OrbitMath.PreciseOrbitalVelocityVector(_stdGravParamCurrentBody, ralPosCBAU, smaCurrOrbtAU, _orderEntityOrbit.Eccentricity, _orderEntityOrbit.LongitudeOfAscendingNode + _orderEntityOrbit.ArgumentOfPeriapsis); }
void CloseWindow() { IsActive = false; CurrentState = States.NeedsEntity; _state.SelectedSystem.ManagerSubpulses.SystemDateChangedEvent -= OnSystemDateTimeChange; _progradeDV = 0; _radialDV = 0; if (_orbitWidget != null) { _state.SelectedSysMapRender.UIWidgets.Remove(nameof(_orbitWidget)); _orbitWidget = null; } if (_moveWidget != null) { _state.SelectedSysMapRender.UIWidgets.Remove(nameof(_moveWidget)); _moveWidget = null; } }
private WarpOrderWindow(EntityState entityState, bool smMode = false) { _flags = ImGuiWindowFlags.AlwaysAutoResize; OrderingEntityState = entityState; _smMode = smMode; _displayText = "Warp Order: " + OrderingEntityState.Name; _tooltipText = "Select target to orbit"; CurrentState = States.NeedsTarget; //TargetEntity = new EntityState(Entity.InvalidEntity) { Name = "" }; if (OrderingEntityState.Entity.HasDataBlob <OrbitDB>()) { //_orbitWidget = new OrbitOrderWiget(OrderingEntity.Entity.GetDataBlob<OrbitDB>()); //_uiState.MapRendering.UIWidgets.Add(_orbitWidget); if (_moveWidget == null) { _moveWidget = new WarpMoveOrderWidget(_uiState, OrderingEntityState.Entity); _uiState.SelectedSysMapRender.UIWidgets.Add(nameof(_moveWidget), _moveWidget); } } if (OrderingEntityState.Entity.HasDataBlob <NewtonThrustAbilityDB>()) { var newtDB = OrderingEntityState.Entity.GetDataBlob <NewtonThrustAbilityDB>(); _maxDV = (float)newtDB.DeltaV; } fsm = new Action[4, 4] { //selectEntity selectPos clickAction altClick { DoNothing, DoNothing, DoNothing, AbortOrder, }, //needsEntity { TargetSelected, DoNothing, DoNothing, GoBackState, }, //needsTarget { DoNothing, InsertionPntSelected, DoNothing, GoBackState, }, //needsApopapsis //{DoNothing, PeriapsisPntSelected, DoNothing, GoBackState, }, //needsPeriapsis { DoNothing, DoNothing, ActionCmd, GoBackState, } //needsActoning }; }