Ejemplo n.º 1
0
 private void canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
 {
     canvas.ReleaseMouseCapture();
     if (drawLine)
     {
         drawLine = false;
         canvas.Children.Remove(ConnectionLine);
         RecipeNode rn = (RecipeNode)Helper.FindParentOfType((FrameworkElement)e.OriginalSource, typeof(RecipeNode));
         if (rn != null)
         {
             foreach (ItemNode node in ItemBeingConnected.input ? rn.outPanel.Children : rn.inPanel.Children)
             {
                 if (node.recipeItem.item.Name == ItemBeingConnected.recipeItem.item.Name)
                 {
                     connections.Add(new Connection(ItemBeingConnected, node, new Line(), canvas));
                     UpdateRates();
                 }
             }
         }
         else
         {
             ContextMenu cm = ConnectRecipeMenu(ItemBeingConnected);
             cm.IsOpen = true;
         }
     }
     e.Handled = true;
 }
Ejemplo n.º 2
0
        private void addItemButton_Click(object sender, RoutedEventArgs e)
        {
            Recipe     recipe = ((ListItem)ItemsListView.SelectedItem).recipe;
            RecipeNode rn     = new RecipeNode(recipe, canvas, zoom);

            canvas.Children.Add(rn);
            rn.SetValue(Canvas.TopProperty, canvas.Height / 2);
            rn.SetValue(Canvas.LeftProperty, canvas.Width / 2);
        }
Ejemplo n.º 3
0
        public double SetRateUp(double rate)
        {
            if (currentRate > rate)
            {
                currentRate = rate;
                SetMachineTexts();
                SetRate(currentRate, false);
                rectangle.Stroke = new SolidColorBrush(Colors.Red);
            }
            double          rateOut = currentRate;
            List <ItemNode> nodes   = Helper.GetConnected((ItemNode)outPanel.Children[0]);

            foreach (ItemNode node in nodes)
            {
                RecipeNode rnode = (RecipeNode)Helper.FindParentOfType(node, typeof(RecipeNode));
                rateOut = rnode.SetRateUp(rateOut * (recipe.Outputs[0].count / node.recipeItem.count));
            }
            return(rate - currentRate);
        }
Ejemplo n.º 4
0
        private void RecipeContextMenu_Click(object sender, RoutedEventArgs e, Recipe recipe, Point pos, ItemNode from)
        {
            RecipeNode rn = new RecipeNode(recipe, canvas, zoom);

            canvas.Children.Add(rn);
            Canvas.SetLeft(rn, pos.X - 125);
            Canvas.SetTop(rn, pos.Y - 75);
            foreach (ItemNode to in rn.inPanel.Children)
            {
                if (to.recipeItem.item.Name == from.recipeItem.item.Name)
                {
                    connections.Add(new Connection(from, to, new Line(), canvas));
                }
            }
            foreach (ItemNode to in rn.outPanel.Children)
            {
                if (to.recipeItem.item.Name == from.recipeItem.item.Name)
                {
                    connections.Add(new Connection(from, to, new Line(), canvas));
                }
            }
            UpdateLines();
            UpdateRates();
        }