コード例 #1
0
 public void RemoveTile(Cable tile)
 {
     if (tiles.Contains(tile))
     {
         tiles.Remove(tile);
         ReformGrid();
     }
 }
コード例 #2
0
 public void AddTile(Cable tile)
 {
     if (!tiles.Contains(tile))
     {
         energy.AddCapacity(tile.MaxIO * 2);
         energy.ModifyEnergyStored((long)tile.grid.GetEnergySharePerNode());
         tile.grid = this;
         tiles.Add(tile);
     }
 }
コード例 #3
0
        public void Modify()
        {
            Point point = new Point((int)Main.MouseWorld.X - position.X * 16, (int)Main.MouseWorld.Y - position.Y * 16);

            Rectangle io = new Rectangle(4, 4, 8, 8);

            if (!io.Contains(point))
            {
                for (int i = 0; i < 4; i++)
                {
                    if (point.InTriangle(connectionTriangles[i]))
                    {
                        connections[i] = !connections[i];
                        Net.SendCableModification(this);

                        if (!connections[i])
                        {
                            grid.ReformGrid();
                            Net.SendGridReform(this);
                        }

                        if (layer.ContainsKey(position + sides[i]))
                        {
                            Cable secCable    = layer[position + sides[i]];
                            int   counterpart = i.Counterpart();
                            secCable.connections[counterpart] = !secCable.connections[counterpart];
                            Net.SendCableModification(secCable);
                            if (connections[i])
                            {
                                grid.MergeGrids(secCable.grid);
                                Net.SendGridMerge(this, secCable);
                            }

                            secCable.Frame();
                        }
                    }

                    Frame();
                    Net.SendCableModification(this);
                }
            }
            else
            {
                IO = IO.NextEnum();
                Net.SendCableModification(this);
            }
        }