CircuitPainter now uses PartNode instead of Node to draw PartNodes

This commit is contained in:
Patrick Haßel 2024-12-05 16:10:09 +01:00
parent 8c1555330b
commit e82307431f
6 changed files with 23 additions and 24 deletions

View File

@ -3,6 +3,7 @@ package de.ph87.electro.circuit;
import de.ph87.electro.circuit.node.Node;
import de.ph87.electro.circuit.part.Orientation;
import de.ph87.electro.circuit.part.Part;
import de.ph87.electro.circuit.part.PartNode;
import java.awt.*;
import java.awt.geom.AffineTransform;
@ -92,12 +93,12 @@ public class CircuitPainter {
}
}
public static void drawLine(final Graphics2D g, final Node a, final Node b, final Color color, final Stroke stroke) {
drawLine(g, a.getPosition(), b.getPosition(), color, stroke);
public static void drawLine(final Graphics2D g, final PartNode a, final PartNode b, final Color color, final Stroke stroke) {
drawLine(g, a.getInside(), b.getInside(), color, stroke);
}
public static void drawLine(final Graphics2D g, final Node a, final Point b, final Color color, final Stroke stroke) {
drawLine(g, a.getPosition(), b, color, stroke);
public static void drawLine(final Graphics2D g, final PartNode a, final Point b, final Color color, final Stroke stroke) {
drawLine(g, a.getInside(), b, color, stroke);
}
public static void drawLine(final Graphics2D g, final Point a, final Point b, final Color color, final Stroke stroke) {

View File

@ -1,6 +1,5 @@
package de.ph87.electro.circuit.part;
import de.ph87.electro.circuit.node.Node;
import de.ph87.electro.circuit.node.NodeDto;
import de.ph87.electro.circuit.part.parts.*;
import lombok.Getter;
@ -99,12 +98,12 @@ public abstract class Part {
}
@NonNull
protected Node addNode(@NonNull final String name, final int x, final int y) {
protected PartNode addNode(@NonNull final String name, final int x, final int y) {
return addNode(new PartNode(this, name, new Point(x, y)));
}
@NonNull
protected Node addNode(@NonNull final NodeDto dto, final int x, final int y) {
protected PartNode addNode(@NonNull final NodeDto dto, final int x, final int y) {
return addNode(new PartNode(this, dto, new Point(x, y)));
}

View File

@ -1,9 +1,9 @@
package de.ph87.electro.circuit.part.parts;
import de.ph87.electro.circuit.node.Node;
import de.ph87.electro.circuit.part.InnerConnection;
import de.ph87.electro.circuit.part.Orientation;
import de.ph87.electro.circuit.part.Part;
import de.ph87.electro.circuit.part.PartNode;
import lombok.Getter;
import lombok.ToString;
@ -36,9 +36,9 @@ public class Light extends Part {
private static final Color BULB_OFF_COLOR = Color.DARK_GRAY;
private final Node a;
private final PartNode a;
private final Node b;
private final PartNode b;
private double resistance = 15;

View File

@ -1,8 +1,8 @@
package de.ph87.electro.circuit.part.parts;
import de.ph87.electro.circuit.node.Node;
import de.ph87.electro.circuit.part.InnerConnection;
import de.ph87.electro.circuit.part.Part;
import de.ph87.electro.circuit.part.PartNode;
import lombok.Getter;
import lombok.ToString;
@ -18,9 +18,9 @@ public class Switch1x1 extends Part {
private static final Point END = new Point(P90, P25);
private final Node common;
private final PartNode common;
private final Node output;
private final PartNode output;
private boolean state = false;
@ -49,8 +49,7 @@ public class Switch1x1 extends Part {
@Override
protected void _render(final Graphics2D g) {
if (!state) {
final Point end = getOrientation().rotate(END);
drawLine(g, common.getPosition(), end, common.getColor(), SWITCH_STROKE);
drawLine(g, common, END, common.getColor(), SWITCH_STROKE);
} else {
drawLine(g, common, output, common.getColor(), SWITCH_STROKE);
}

View File

@ -1,8 +1,8 @@
package de.ph87.electro.circuit.part.parts;
import de.ph87.electro.circuit.node.Node;
import de.ph87.electro.circuit.part.InnerConnection;
import de.ph87.electro.circuit.part.Part;
import de.ph87.electro.circuit.part.PartNode;
import lombok.Getter;
import lombok.ToString;
@ -16,11 +16,11 @@ import static de.ph87.electro.circuit.CircuitPainter.drawLine;
@ToString(callSuper = true)
public class Switch1x2 extends Part {
private final Node common;
private final PartNode common;
private final Node output0;
private final PartNode output0;
private final Node output1;
private final PartNode output1;
private boolean state = false;

View File

@ -1,8 +1,8 @@
package de.ph87.electro.circuit.part.parts;
import de.ph87.electro.circuit.node.Node;
import de.ph87.electro.circuit.part.InnerConnection;
import de.ph87.electro.circuit.part.Part;
import de.ph87.electro.circuit.part.PartNode;
import lombok.Getter;
import lombok.ToString;
@ -16,13 +16,13 @@ import static de.ph87.electro.circuit.CircuitPainter.drawLine;
@ToString(callSuper = true)
public class SwitchCross extends Part {
private final Node common0;
private final PartNode common0;
private final Node common1;
private final PartNode common1;
private final Node output0;
private final PartNode output0;
private final Node output1;
private final PartNode output1;
private boolean state = false;