public override void EventFired(object sender, Event e) { if (e is CollisionFaceSelectEvent s) { SelectedPropertyIndex = 0; Members.Clear(); Box = s.Box; FaceIndex = s.FaceIndex; Face = Box.GetFaceProperties().ElementAt(FaceIndex); //object face = (object)(FaceIndex == 0 ? Box.TopFaceProperties : FaceIndex == 1 ? Box.RightFaceProperties : FaceIndex == 2 ? Box.BottomFaceProperties : Box.LeftFaceProperties); foreach (FieldInfo field in typeof(CollisionFaceProperties).GetFields()) { Members.Add(new FieldSummary(Owner, field, (object)Face)); } } else if (e is ModalChangeEvent) { ModalActive = true; ModalVisible = true; } else if (e is BeginModalChangeEvent bmce) { bmce.SystemName = "collision_cursor_mode"; ModalActive = false; ModalVisible = false; switch (FaceIndex) { case 0: Box.TopFaceProperties = (CollisionFaceProperties)Face; break; case 1: Box.RightFaceProperties = (CollisionFaceProperties)Face; break; case 2: Box.BottomFaceProperties = (CollisionFaceProperties)Face; break; case 3: Box.LeftFaceProperties = (CollisionFaceProperties)Face; break; } } }