示例#1
0
        public void AddRoomExit(XYZ normal, XYZ exitpos, RoomData room)
        {
            bool contains = false;

            for (int i = 0; i < Rooms.Count; i++)
            {
                if (Rooms[i] == room)
                {
                    room     = Rooms[i];
                    contains = true;
                    break;
                }
            }
            if (!contains)
            {
                Rooms.Add(room);
            }
            for (int i = 0; i < Exits.Count; i++)
            {
                if (posEquals(Exits[i].Position, exitpos))
                {
                    Exits[i].Rooms.Add(room);
                    room.Exits.Add(Exits[i]);
                    return;
                }
            }
            var e = new ExitData(exitpos, room);

            e.Normal = normal;
            Exits.Add(e);
            room.Exits.Add(e);
        }
示例#2
0
        private void ok_button_Click(object sender, RoutedEventArgs e)
        {
            bool hasexc = false;

            foreach (ListBoxItem lbi in lister.Items)
            {
                try
                {
                    List <object> tb   = (List <object>)lbi.Tag;
                    float         val  = float.Parse(((TextBox)tb[1]).Text);
                    float         val2 = float.Parse(((TextBox)tb[2]).Text);
                    ExitData      data = ((ExitData)tb[0]);
                    data.Weight2 = val;
                    data.Weight1 = val2;
                }
                catch (Exception k)
                {
                    hasexc = true;
                    MessageBox.Show(k.StackTrace);
                    MessageBox.Show($"Wrong format for floating number, try again.");
                }
            }
            hasexc = hasexc && !checkWeights();
            if (!hasexc)
            {
                this.DialogResult = true;
            }
        }