home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Graphics;
- import java.util.Vector;
-
- class Switch extends ElectronicComponent {
- boolean SwitchClosed = false;
- Vector ConnCompsA;
- Vector ConnCompsB;
- Vector ConnCompsQ;
- int ALevel = -1;
- int BLevel = -1;
- int QLevel = -1;
-
- public Switch(Pin[][] var1, int var2, int var3) {
- super(var2, var3, 10, 5, 3, 1, 4, 4, 0, 0);
- super.ComponentName = "Switch";
- super.ClassName = "Switch";
- this.RegisterPins(var1, var2, var3);
- }
-
- public Switch(ElectronicComponent var1, int var2, int var3) {
- super(var1, var2, var3);
- }
-
- public ElectronicComponent Copy(int var1, int var2) {
- Switch var3 = new Switch(this, var1, var2);
- return var3;
- }
-
- public boolean SimMouseDown() {
- this.SwitchClosed = !this.SwitchClosed;
- return true;
- }
-
- public void InformComponents(int var1, int var2, Vector var3, int var4, int var5) {
- for(int var7 = 0; var7 < var3.size(); ++var7) {
- ElectronicComponent var6 = (ElectronicComponent)var3.elementAt(var7);
- if (var6 != this) {
- var6.ReceivePotential(var1, var2, var4, var5);
- }
- }
-
- }
-
- public void ReceivePotential(int var1, int var2, int var3, int var4) {
- if (var3 == super.Pos.x + 1 && var4 == super.Pos.y + 2) {
- this.ALevel = var2;
- if (!this.SwitchClosed) {
- this.QLevel = var2;
- this.InformComponents(var1, var2, this.ConnCompsQ, super.Pos.x + 9, super.Pos.y + 3);
- }
-
- } else if (var3 == super.Pos.x + 1 && var4 == super.Pos.y + 4) {
- this.BLevel = var2;
- if (this.SwitchClosed) {
- this.QLevel = var2;
- this.InformComponents(var1, var2, this.ConnCompsQ, super.Pos.x + 9, super.Pos.y + 3);
- }
-
- } else if (var3 == super.Pos.x + 9 && var4 == super.Pos.y + 3) {
- this.QLevel = var2;
- if (this.SwitchClosed) {
- this.BLevel = var2;
- this.InformComponents(var1, var2, this.ConnCompsB, super.Pos.x + 1, super.Pos.y + 4);
- } else {
- this.ALevel = var2;
- this.InformComponents(var1, var2, this.ConnCompsA, super.Pos.x + 1, super.Pos.y + 2);
- }
- }
- }
-
- public void SimulateSetUp(int var1, int var2, Vector var3) {
- if (super.Pos.x + 1 == var1 && super.Pos.y + 2 == var2) {
- this.ConnCompsA = var3;
- }
-
- if (super.Pos.x + 1 == var1 && super.Pos.y + 4 == var2) {
- this.ConnCompsB = var3;
- }
-
- if (super.Pos.x + 9 == var1 && super.Pos.y + 3 == var2) {
- this.ConnCompsQ = var3;
- }
-
- }
-
- public void RemovePinsGrid(Pin[][] var1) {
- ((ElectronicComponent)this).RemovePin(var1[super.Pos.x + 1][super.Pos.y + 2]);
- ((ElectronicComponent)this).RemovePin(var1[super.Pos.x + 1][super.Pos.y + 4]);
- ((ElectronicComponent)this).RemovePin(var1[super.Pos.x + 9][super.Pos.y + 3]);
- }
-
- public void RegisterPins(Pin[][] var1, int var2, int var3) {
- if (var1 != null) {
- ((ElectronicComponent)this).RegisterPin(var1[var2 + 1][var3 + 2]);
- ((ElectronicComponent)this).RegisterPin(var1[var2 + 1][var3 + 4]);
- ((ElectronicComponent)this).RegisterPin(var1[var2 + 9][var3 + 3]);
- }
- }
-
- public void PlacePinsHere(Pin[][] var1) {
- if (var1 != null) {
- this.RegisterPins(var1, super.Pos.x, super.Pos.y);
- }
- }
-
- public void draw(Graphics var1, int var2, int var3, int var4) {
- super.draw(var1, var2, var3, var4);
- int var5 = super.Pos.x - var2;
- int var6 = super.Pos.y - var3;
- var1.setColor(ComponentPin.PinColor);
- var1.drawLine((var5 + 1) * var4, (var6 + 2) * var4, (var5 + 3) * var4, (var6 + 2) * var4);
- var1.drawLine((var5 + 1) * var4, (var6 + 4) * var4, (var5 + 3) * var4, (var6 + 4) * var4);
- var1.drawLine((var5 + 8) * var4, (var6 + 3) * var4, (var5 + 9) * var4, (var6 + 3) * var4);
- var1.setColor(ElectronicComponent.ComponentColor);
- var1.fillRect((var5 + 3) * var4, (var6 + 2) * var4 - var4 / 3, var4 / 2, var4 / 2 + 1);
- var1.fillRect((var5 + 3) * var4, (var6 + 4) * var4 - var4 / 3, var4 / 2, var4 / 2 + 1);
- var1.fillRect((int)(((double)var5 + (double)7.5F) * (double)var4), (var6 + 3) * var4 - var4 / 3 + 1, var4 / 2, var4 / 2);
- switch (this.QLevel) {
- case 0:
- var1.setColor(Color.green);
- break;
- case 5:
- var1.setColor(Color.red);
- break;
- default:
- var1.setColor(Color.gray);
- }
-
- if (this.SwitchClosed) {
- var1.drawLine((var5 + 3) * var4, (var6 + 4) * var4, (var5 + 8) * var4, (var6 + 3) * var4);
- } else {
- var1.drawLine((var5 + 3) * var4, (var6 + 2) * var4, (var5 + 8) * var4, (var6 + 3) * var4);
- }
- }
- }
-