Esempio n. 1
0
        public LevelObject GetObjectAtCurrentPosition(bool searchAreas = true)
        {
            foreach (Listener listener in LevelObjects)
            {
                BitmapImage resource     = LevelObjectTypeConverter.GetObjectResource(listener.ObjectType);
                bool        isHorizontal = listener.Direction == "left" || listener.Direction == "right";

                double objectWidth = (isHorizontal ? resource.PixelHeight : resource.PixelWidth) /
                                     LevelObjectSizeConverter.BLOCK_PIXEL_SIZE;
                double objectHeight = (isHorizontal ? resource.PixelWidth : resource.PixelHeight) /
                                      LevelObjectSizeConverter.BLOCK_PIXEL_SIZE;

                if (currentPosition.X >= listener.X && currentPosition.X <= listener.X + objectWidth &&
                    currentPosition.Y >= listener.Y && currentPosition.Y <= listener.Y + objectHeight)
                {
                    return(listener);
                }
            }

            if (searchAreas)
            {
                foreach (Area area in levelData.Areas)
                {
                    if (currentPosition.X >= area.X && currentPosition.X <= area.X + area.Width &&
                        currentPosition.Y >= area.Y && currentPosition.Y <= area.Y + area.Height)
                    {
                        return(area);
                    }
                }
            }

            return(null);
        }
Esempio n. 2
0
 private void ConstructButtons()
 {
     for (int i = 0; i < BlockConverter.MAX_ID; i++)
     {
         string blockName = BlockConverter.GetBlockName(i);
         if (blockName != null)
         {
             // Блин, как-то коряво выглядит. Можно, конечно, было передавать только ID, но вариант с
             // двукратным получением имени блока мне кажется еще хуже.
             ToggleButton button = ConstructBlockButton(i, blockName);
             blockButtons[i] = button;
             ButtonPanel.Children.Add(button);
         }
     }
     ConstructSeparator();
     foreach (string objectType in LevelObjectTypeConverter.GetAllListeners())
     {
         ToggleButton button = ConstructListenerButton(objectType);
         listenerButtons[objectType] = button;
         ButtonPanel.Children.Add(button);
     }
     ConstructSeparator();
     foreach (string objectType in LevelObjectTypeConverter.GetAllEntities())
     {
         ToggleButton button = ConstructListenerButton(objectType);
         listenerButtons[objectType] = button;
         ButtonPanel.Children.Add(button);
     }
 }
Esempio n. 3
0
        private ToggleButton ConstructListenerButton(string objectType)
        {
            LevelObjectTypeConverter objectTypeConverter = new LevelObjectTypeConverter();

            BitmapImage backgroundImage = objectTypeConverter.Convert(objectType, typeof(BitmapImage),
                                                                      null, CultureInfo.CurrentCulture) as BitmapImage;

            ToggleButton button = ConstructButton(backgroundImage, objectType, ListenerButton_Click);

            button.ToolTip = objectType;

            return(button);
        }
Esempio n. 4
0
        private void PropertiesPanel_Loaded(object sender, RoutedEventArgs e)
        {
            var typeConverter = new LevelObjectTypeConverter();

            ObjectIcon.Source = typeConverter.Convert(levelObject.ObjectType, typeof(BitmapImage),
                                                      "IgnoreExceptions", CultureInfo.InvariantCulture) as BitmapImage;
            ObjectName.Content = levelObject.ObjectType;

            foreach (var editableProperty in levelObject.GetEditableProperties())
            {
                string value = levelObject.GetType().GetProperty(editableProperty.Name).GetValue(levelObject).ToString();
                propertyList.Add(new PropertyListEntry {
                    Name = editableProperty.Name, Value = value
                });
            }

            PropertyList.ItemsSource = propertyList;
        }