home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Graphics;
- import java.io.PrintStream;
- import java.util.Vector;
-
- class Wire extends ElectronicComponent {
- // $FF: renamed from: x1 int
- protected int field_0;
- // $FF: renamed from: y1 int
- protected int field_1;
- // $FF: renamed from: x2 int
- protected int field_2;
- // $FF: renamed from: y2 int
- protected int field_3;
- protected int ChangingWire;
- int ActLevel = -1;
- Vector ConnComps1;
- Vector ConnComps2;
- int ReceivedSimulationCycleID = -1;
-
- public Wire(Pin[][] var1, int var2, int var3) {
- super.ComponentName = "wire";
- this.field_0 = var2;
- this.field_1 = var3;
- this.ActLevel = -1;
- }
-
- public Wire(Pin[][] var1, int var2, int var3, int var4, int var5) {
- super.ComponentName = "wire";
- this.field_0 = var2;
- this.field_1 = var3;
- this.field_2 = var4;
- this.field_3 = var5;
- this.ActLevel = -1;
- this.PlacePinsHere(var1);
- }
-
- public Wire(Pin[][] var1, int var2, int var3, int var4, int var5, int var6) {
- super.ComponentName = "wire";
- this.field_0 = var3;
- this.field_1 = var4;
- this.field_2 = var5;
- this.field_3 = var6;
- this.ActLevel = var2;
- this.PlacePinsHere(var1);
- }
-
- public Wire(ElectronicComponent var1, int var2, int var3) {
- super.ComponentName = "wire";
- this.ActLevel = -1;
- }
-
- public ElectronicComponent Copy(int var1, int var2) {
- Wire var3 = new Wire(this, var1, var2);
- var3.field_0 = this.field_0 - var1;
- var3.field_1 = this.field_1 - var2;
- var3.field_2 = this.field_2 - var1;
- var3.field_3 = this.field_3 - var2;
- this.CheckPosition();
- return var3;
- }
-
- public void CheckPosition() {
- if (this.field_0 < 1) {
- this.field_0 = 1;
- }
-
- if (this.field_0 >= 100) {
- this.field_0 = 99;
- }
-
- if (this.field_1 < 1) {
- this.field_1 = 1;
- }
-
- if (this.field_1 >= 100) {
- this.field_1 = 99;
- }
-
- if (this.field_2 < 1) {
- this.field_2 = 1;
- }
-
- if (this.field_2 >= 100) {
- this.field_2 = 99;
- }
-
- if (this.field_3 < 1) {
- this.field_3 = 1;
- }
-
- if (this.field_3 >= 100) {
- this.field_3 = 99;
- }
-
- }
-
- public void SimulateSetUp(int var1, int var2, Vector var3) {
- if (var1 == this.field_0 && var2 == this.field_1) {
- this.ConnComps1 = var3;
- }
-
- if (var1 == this.field_2 && var2 == this.field_3) {
- this.ConnComps2 = var3;
- }
-
- }
-
- public void InitBeforeSimulate() {
- this.ReceivedSimulationCycleID = -1;
- }
-
- public void ReceivePotential(int var1, int var2, int var3, int var4) {
- if (var1 != this.ReceivedSimulationCycleID || this.ActLevel != var2) {
- this.ActLevel = var2;
- this.ReceivedSimulationCycleID = var1;
- if (this.field_0 == var3 && this.field_1 == var4) {
- this.InformComponents(var1, this.ConnComps2, this.field_2, this.field_3);
- } else if (this.field_2 == var3 && this.field_3 == var4) {
- this.InformComponents(var1, this.ConnComps1, this.field_0, this.field_1);
- }
- }
- }
-
- public void InformComponents(int var1, Vector var2, int var3, int var4) {
- ((ElectronicComponent)this).SimulateLogic();
-
- for(int var6 = 0; var6 < var2.size(); ++var6) {
- ElectronicComponent var5 = (ElectronicComponent)var2.elementAt(var6);
- if (var5 != this) {
- var5.ReceivePotential(var1, this.ActLevel, var3, var4);
- }
- }
-
- }
-
- public boolean AdjustPosition(Pin[][] var1, int var2, int var3) {
- int var4 = this.field_0;
- int var5 = this.field_1;
- int var6 = this.field_2;
- int var7 = this.field_3;
- if ((this.ChangingWire & 1) == 1) {
- var4 += var2;
- var5 += var3;
- }
-
- if ((this.ChangingWire & 2) == 2) {
- var6 += var2;
- var7 += var3;
- }
-
- if (var4 == var6 && var5 == var7) {
- return false;
- } else {
- this.field_0 = var4;
- this.field_1 = var5;
- this.field_2 = var6;
- this.field_3 = var7;
- return true;
- }
- }
-
- public void RemovePinsGrid(Pin[][] var1) {
- ((ElectronicComponent)this).RemovePin(var1[this.field_0][this.field_1]);
- ((ElectronicComponent)this).RemovePin(var1[this.field_2][this.field_3]);
- }
-
- public void RegisterPins(Pin[][] var1, int var2, int var3) {
- if (var1 != null) {
- ((ElectronicComponent)this).RegisterPin(var1[this.field_0][this.field_1]);
- ((ElectronicComponent)this).RegisterPin(var1[this.field_2][this.field_3]);
- }
- }
-
- public void PlacePinsHere(Pin[][] var1) {
- if (var1 != null) {
- this.RegisterPins(var1, 0, 0);
- }
- }
-
- public void Set2ndCoord(Pin[][] var1, int var2, int var3) {
- this.field_2 = var2;
- this.field_3 = var3;
- }
-
- public void draw(Graphics var1, int var2, int var3, int var4) {
- if (super.Selected) {
- var1.setColor(Color.white);
- if ((this.ChangingWire & 1) == 1) {
- var1.drawRect((int)(((double)(this.field_0 - var2) - (double)0.25F) * (double)var4), (int)(((double)(this.field_1 - var3) - (double)0.25F) * (double)var4), var4 / 2, var4 / 2);
- }
-
- if ((this.ChangingWire & 2) == 2) {
- var1.drawRect((int)(((double)(this.field_2 - var2) - (double)0.25F) * (double)var4), (int)(((double)(this.field_3 - var3) - (double)0.25F) * (double)var4), var4 / 2, var4 / 2);
- }
- }
-
- if (this.ActLevel == 0) {
- var1.setColor(Color.green);
- } else if (this.ActLevel == 5) {
- var1.setColor(Color.red);
- } else {
- var1.setColor(Color.gray);
- }
-
- var1.drawLine((this.field_0 - var2) * var4, (this.field_1 - var3) * var4, (this.field_2 - var2) * var4, (this.field_3 - var3) * var4);
- }
-
- public int sgn(int var1) {
- if (var1 > 0) {
- return 1;
- } else {
- return var1 < 0 ? -1 : 0;
- }
- }
-
- public boolean CheckIfPointInWire(int var1, int var2, int var3, int var4, int var5, int var6) {
- int var7 = var3 - var1;
- int var9 = var4 - var2;
- int var11 = this.sgn(var7);
- int var12 = this.sgn(var9);
- int var13 = this.sgn(var7);
- int var14 = 0;
- int var15 = Math.abs(var7);
- int var16 = Math.abs(var9);
- if (var15 <= var16) {
- var13 = 0;
- var14 = this.sgn(var9);
- var15 = Math.abs(var9);
- var16 = Math.abs(var7);
- }
-
- int var8 = var15 / 2;
-
- for(int var10 = 0; var10 < var15; ++var10) {
- if (Math.abs(var5 - var1) < 1 && Math.abs(var6 - var2) < 1) {
- return true;
- }
-
- var8 += var16;
- if (var8 >= var15) {
- var8 -= var15;
- var1 += var11;
- var2 += var12;
- } else {
- var1 += var13;
- var2 += var14;
- }
- }
-
- return false;
- }
-
- public boolean CheckIfComponentClicked(int var1, int var2) {
- if (var1 == this.field_0 && var2 == this.field_1) {
- this.ChangingWire = 1;
- return true;
- } else if (var1 == this.field_2 && var2 == this.field_3) {
- this.ChangingWire = 2;
- return true;
- } else if (this.CheckIfPointInWire(this.field_0, this.field_1, this.field_2, this.field_3, var1, var2)) {
- this.ChangingWire = 3;
- return true;
- } else {
- return false;
- }
- }
-
- public boolean CheckIfComponentInSelectBox(int var1, int var2, int var3, int var4) {
- super.Selected = false;
- this.ChangingWire = 0;
- if (var1 <= this.field_0 && this.field_0 <= var3 && var2 <= this.field_1 && this.field_1 <= var4) {
- this.ChangingWire |= 1;
- super.Selected = true;
- }
-
- if (var1 <= this.field_2 && this.field_2 <= var3 && var2 <= this.field_3 && this.field_3 <= var4) {
- this.ChangingWire |= 2;
- super.Selected = true;
- }
-
- return super.Selected;
- }
-
- public void Save(PrintStream var1) {
- var1.println("describe component Wire");
- var1.println(" pos " + this.field_0 + " " + this.field_1);
- var1.println(" pos2 " + this.field_2 + " " + this.field_3);
- var1.println("end describe");
- }
-
- public boolean TryPlaceJunction(Schematic var1, Pin[][] var2, int var3, int var4, int var5) {
- if (var3 == this.field_0 && var4 == this.field_1) {
- return false;
- } else if (var3 == this.field_2 && var4 == this.field_3) {
- return false;
- } else if (this.CheckIfPointInWire(this.field_0 * var5, this.field_1 * var5, this.field_2 * var5, this.field_3 * var5, var3 * var5, var4 * var5)) {
- var1.addComponent(new Wire(var2, this.ActLevel, var3, var4, this.field_0, this.field_1));
- this.RemovePinsGrid(var2);
- this.field_0 = var3;
- this.field_1 = var4;
- this.PlacePinsHere(var2);
- return true;
- } else {
- return false;
- }
- }
- }
-