public void RemoveTile(Cable tile) { if (tiles.Contains(tile)) { tiles.Remove(tile); ReformGrid(); } }
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); } }
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); } }