/// <summary> /// Constructor method to initialize flags /// </summary> public IslandingAnalyzer() { m_islandingFlag = IslandingFlag.NoIslandingConditionExists; m_locationFlag = LocationFlag.NoIslandingCondition; m_severityFlag = SeverityFlag.LowSeverity; m_stabilityFlag = StabilityFlag.Stable; }
internal void SetLocation(Vector2 position, IPanel panel) { Position = position; Panel = panel; Flags = LocationFlag.None; if (panel == null || !panel.visualTree.layout.Contains(position)) { Flags |= LocationFlag.OutsidePanel; } }
public static bool HasLocationFlag(int pointerId, ContextType contextType, LocationFlag flag) { switch (contextType) { case ContextType.Editor: default: return(HasFlagFast(s_EditorPointerLocations[pointerId].Flags, flag)); case ContextType.Player: return(HasFlagFast(s_PlayerPointerLocations[pointerId].Flags, flag)); } }
/// <summary> /// Islanding Detection and Location Judgement /// /// Decision Tree Splitting Points Data /// /// DT_1 Islanding Judgement: Full loop DVP /// /// DT_1 Location: Yorktown /// /// DT_1 Location: Chesterfield /// /// DT_1 Location: Chesapeake /// </summary> /// <param name="data"> /// A column matrix of processed data /// prepared for the decision tree /// </param> public void islandingJudgment(double[] data) { if ((data[50] <= 1.052513 && data[8] > 1.027590 && data[84] > -0.503139 && (data[52] <= 1.052598 || (data[52] > 1.052598 && data[4] > 1.057792))) || (data[50] > 1.052513 && ((data[4] <= 1.058394 && data[63] <= 0.062944) || (data[4] > 1.058394 && data[0] <= 1.047624)))) { m_islandingFlag = IslandingFlag.IslandingConditionExists; if (m_islandingFlag == IslandingFlag.IslandingConditionExists) { /// Location determination if (data[55] > -0.169610 && data[84] <= 0.547558 && ((data[70] <= -4.106833 && data[0] > 1.045549 && (data[69] > -0.801558 || (data[69] <= -0.801558 && data[0] <= 1.045994))) || (data[70] > -4.106833 && data[61] > 0.03 && data[63] <= 0.462647 && data[70] <= -3.876851))) { /// Yorktown m_locationFlag = LocationFlag.Yorktown; } else if (data[55] <= -0.17 && data[8] <= 1.04) { /// Chesterfield m_locationFlag = LocationFlag.Chesterfield; } else if (data[55] > -0.169010 && (data[84] > 0.547558 || (data[84] <= 0.547558 && data[70] > -4.106833 && data[61] > 0.032730 && data[63] > 0.462647 && data[0] <= 1.044399))) { /// Chesapeake m_locationFlag = LocationFlag.Chesapeake; } else { /// Undetermined m_locationFlag = LocationFlag.Undetermined; } } } else { m_islandingFlag = IslandingFlag.NoIslandingConditionExists; m_locationFlag = LocationFlag.NoIslandingCondition; } }
/// <summary> /// 将蓝图转换成一个要显示的 ListViewItem /// </summary> /// <returns></returns> public ListViewItem ListViewItem() { ListViewItem lvi = new ListViewItem(); // 蓝图名称 if (BluePrints == null) { lvi.Text = invTypes.GetInvTypes(BluePrintID).Name; } else { lvi.Text = BluePrints.invTypes.Name; } lvi.SubItems.Add(ID.ToString()); lvi.SubItems.Add(ItemID.ToString()); lvi.SubItems.Add(BluePrintID.ToString()); lvi.SubItems.Add(MaterialEfficiency.ToString()); lvi.SubItems.Add(TimeEfficiency.ToString()); lvi.SubItems.Add(Quantity.ToString()); lvi.SubItems.Add(Runs.ToString()); // 如果是角色拥有则显示角色名称, 否则直接显示"军团" if (CharacterOwned) { if (Characters == null) { lvi.SubItems.Add(Characters.GetCharacters(Owner).CharacterName); } else { lvi.SubItems.Add(Characters.CharacterName); } } else { lvi.SubItems.Add("军团"); } lvi.SubItems.Add(LocationID.ToString()); lvi.SubItems.Add(LocationFlag.ToString()); lvi.SubItems.Add(UpdateTime.ToString()); lvi.SubItems.Add(Cost.ToString()); return(lvi); }
static bool HasFlagFast(LocationFlag flagSet, LocationFlag flag) { return((flagSet & flag) == flag); }