Beispiel #1
0
        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;
                }
            }
        }