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.node.Node;
import de.ph87.electro.circuit.part.Orientation; import de.ph87.electro.circuit.part.Orientation;
import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Part;
import de.ph87.electro.circuit.part.PartNode;
import java.awt.*; import java.awt.*;
import java.awt.geom.AffineTransform; 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) { public static void drawLine(final Graphics2D g, final PartNode a, final PartNode b, final Color color, final Stroke stroke) {
drawLine(g, a.getPosition(), b.getPosition(), color, 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) { public static void drawLine(final Graphics2D g, final PartNode a, final Point b, final Color color, final Stroke stroke) {
drawLine(g, a.getPosition(), b, color, 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) { 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; 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.node.NodeDto;
import de.ph87.electro.circuit.part.parts.*; import de.ph87.electro.circuit.part.parts.*;
import lombok.Getter; import lombok.Getter;
@ -99,12 +98,12 @@ public abstract class Part {
} }
@NonNull @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))); return addNode(new PartNode(this, name, new Point(x, y)));
} }
@NonNull @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))); return addNode(new PartNode(this, dto, new Point(x, y)));
} }

View File

@ -1,9 +1,9 @@
package de.ph87.electro.circuit.part.parts; 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.InnerConnection;
import de.ph87.electro.circuit.part.Orientation; import de.ph87.electro.circuit.part.Orientation;
import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Part;
import de.ph87.electro.circuit.part.PartNode;
import lombok.Getter; import lombok.Getter;
import lombok.ToString; import lombok.ToString;
@ -36,9 +36,9 @@ public class Light extends Part {
private static final Color BULB_OFF_COLOR = Color.DARK_GRAY; 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; private double resistance = 15;

View File

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

View File

@ -1,8 +1,8 @@
package de.ph87.electro.circuit.part.parts; 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.InnerConnection;
import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Part;
import de.ph87.electro.circuit.part.PartNode;
import lombok.Getter; import lombok.Getter;
import lombok.ToString; import lombok.ToString;
@ -16,11 +16,11 @@ import static de.ph87.electro.circuit.CircuitPainter.drawLine;
@ToString(callSuper = true) @ToString(callSuper = true)
public class Switch1x2 extends Part { 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; private boolean state = false;

View File

@ -1,8 +1,8 @@
package de.ph87.electro.circuit.part.parts; 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.InnerConnection;
import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Part;
import de.ph87.electro.circuit.part.PartNode;
import lombok.Getter; import lombok.Getter;
import lombok.ToString; import lombok.ToString;
@ -16,13 +16,13 @@ import static de.ph87.electro.circuit.CircuitPainter.drawLine;
@ToString(callSuper = true) @ToString(callSuper = true)
public class SwitchCross extends Part { 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; private boolean state = false;