Test the possibilities of Type-safe wiring.
This commit is contained in:
parent
5839e9a693
commit
8773f46b60
@ -16,8 +16,9 @@ import com.codigoparallevar.minicards.types.PartConnection;
|
|||||||
import com.codigoparallevar.minicards.parts.buttons.RoundButton;
|
import com.codigoparallevar.minicards.parts.buttons.RoundButton;
|
||||||
import com.codigoparallevar.minicards.parts.samples.ColorBox;
|
import com.codigoparallevar.minicards.parts.samples.ColorBox;
|
||||||
import com.codigoparallevar.minicards.parts.samples.Placeholder;
|
import com.codigoparallevar.minicards.parts.samples.Placeholder;
|
||||||
import com.codigoparallevar.minicards.types.InputConnector;
|
import com.codigoparallevar.minicards.types.connectors.input.InputConnector;
|
||||||
import com.codigoparallevar.minicards.types.OutputConnector;
|
import com.codigoparallevar.minicards.types.connectors.input.SignalInputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.output.OutputConnector;
|
||||||
import com.codigoparallevar.minicards.types.Part;
|
import com.codigoparallevar.minicards.types.Part;
|
||||||
import com.codigoparallevar.minicards.types.PartGrid;
|
import com.codigoparallevar.minicards.types.PartGrid;
|
||||||
import com.codigoparallevar.minicards.types.Position;
|
import com.codigoparallevar.minicards.types.Position;
|
||||||
@ -374,7 +375,7 @@ class CanvasView extends View implements PartGrid {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Then with input ones
|
// Then with input ones
|
||||||
for (InputConnector inputConnector : part.getInputConnectors()){
|
for (InputConnector inputConnector : part.getSignalInputConnectors()){
|
||||||
if (inputConnector.containsPoint(x, y)){
|
if (inputConnector.containsPoint(x, y)){
|
||||||
return inputConnector;
|
return inputConnector;
|
||||||
}
|
}
|
||||||
@ -386,13 +387,13 @@ class CanvasView extends View implements PartGrid {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public InputConnector getInputConnectorOn(int x, int y) {
|
public SignalInputConnector getSignalInputConnectorOn(int x, int y) {
|
||||||
// If no part was found, do the same for connectors
|
// If no part was found, do the same for connectors
|
||||||
for (int i = parts.size() - 1; i >= 0; i--){
|
for (int i = parts.size() - 1; i >= 0; i--){
|
||||||
final Part part = parts.get(i);
|
final Part part = parts.get(i);
|
||||||
|
|
||||||
// Then with input ones
|
// Then with input ones
|
||||||
for (InputConnector inputConnector : part.getInputConnectors()){
|
for (SignalInputConnector inputConnector : part.getSignalInputConnectors()){
|
||||||
if (inputConnector.containsPoint(x, y)){
|
if (inputConnector.containsPoint(x, y)){
|
||||||
return inputConnector;
|
return inputConnector;
|
||||||
}
|
}
|
||||||
|
@ -7,9 +7,10 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.codigoparallevar.minicards.types.PartConnection;
|
import com.codigoparallevar.minicards.types.PartConnection;
|
||||||
import com.codigoparallevar.minicards.types.Tuple2;
|
import com.codigoparallevar.minicards.types.Tuple2;
|
||||||
import com.codigoparallevar.minicards.types.InputConnector;
|
import com.codigoparallevar.minicards.types.connectors.input.InputConnector;
|
||||||
import com.codigoparallevar.minicards.types.Moveable;
|
import com.codigoparallevar.minicards.types.Moveable;
|
||||||
import com.codigoparallevar.minicards.types.OutputConnector;
|
import com.codigoparallevar.minicards.types.connectors.input.SignalInputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.output.OutputConnector;
|
||||||
import com.codigoparallevar.minicards.types.Part;
|
import com.codigoparallevar.minicards.types.Part;
|
||||||
import com.codigoparallevar.minicards.types.PartGrid;
|
import com.codigoparallevar.minicards.types.PartGrid;
|
||||||
import com.codigoparallevar.minicards.types.RoundInputConnector;
|
import com.codigoparallevar.minicards.types.RoundInputConnector;
|
||||||
@ -152,7 +153,7 @@ public class RoundButton implements Part {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<InputConnector> getInputConnectors() {
|
public List<SignalInputConnector> getSignalInputConnectors() {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,9 +6,10 @@ import android.graphics.Paint;
|
|||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.codigoparallevar.minicards.types.InputConnector;
|
import com.codigoparallevar.minicards.types.connectors.input.InputConnector;
|
||||||
import com.codigoparallevar.minicards.types.Moveable;
|
import com.codigoparallevar.minicards.types.Moveable;
|
||||||
import com.codigoparallevar.minicards.types.OutputConnector;
|
import com.codigoparallevar.minicards.types.connectors.input.SignalInputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.output.OutputConnector;
|
||||||
import com.codigoparallevar.minicards.types.Part;
|
import com.codigoparallevar.minicards.types.Part;
|
||||||
import com.codigoparallevar.minicards.types.PartGrid;
|
import com.codigoparallevar.minicards.types.PartGrid;
|
||||||
import com.codigoparallevar.minicards.types.RoundInputConnector;
|
import com.codigoparallevar.minicards.types.RoundInputConnector;
|
||||||
@ -30,8 +31,8 @@ public class ColorBox implements Part {
|
|||||||
private int _top;
|
private int _top;
|
||||||
private int _right;
|
private int _right;
|
||||||
private int _bottom;
|
private int _bottom;
|
||||||
private List<InputConnector> inputConnectors;
|
private List<SignalInputConnector> inputConnectors;
|
||||||
private InputConnector _toggleInputConnector;
|
private SignalInputConnector _toggleInputConnector;
|
||||||
|
|
||||||
private ColorBox(String id, PartGrid partGrid, int left, int top, int right, int bottom) {
|
private ColorBox(String id, PartGrid partGrid, int left, int top, int right, int bottom) {
|
||||||
_id = id;
|
_id = id;
|
||||||
@ -135,7 +136,7 @@ public class ColorBox implements Part {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<InputConnector> getInputConnectors() {
|
public List<SignalInputConnector> getSignalInputConnectors() {
|
||||||
return inputConnectors;
|
return inputConnectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,9 +5,10 @@ import android.graphics.Color;
|
|||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.codigoparallevar.minicards.types.InputConnector;
|
import com.codigoparallevar.minicards.types.connectors.input.InputConnector;
|
||||||
import com.codigoparallevar.minicards.types.Moveable;
|
import com.codigoparallevar.minicards.types.Moveable;
|
||||||
import com.codigoparallevar.minicards.types.OutputConnector;
|
import com.codigoparallevar.minicards.types.connectors.input.SignalInputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.output.OutputConnector;
|
||||||
import com.codigoparallevar.minicards.types.Part;
|
import com.codigoparallevar.minicards.types.Part;
|
||||||
import com.codigoparallevar.minicards.types.PartGrid;
|
import com.codigoparallevar.minicards.types.PartGrid;
|
||||||
import com.codigoparallevar.minicards.types.RoundInputConnector;
|
import com.codigoparallevar.minicards.types.RoundInputConnector;
|
||||||
@ -102,7 +103,7 @@ public class Placeholder implements Part {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<InputConnector> getInputConnectors() {
|
public List<SignalInputConnector> getSignalInputConnectors() {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package com.codigoparallevar.minicards.types;
|
package com.codigoparallevar.minicards.types;
|
||||||
|
|
||||||
interface Dropper {
|
public interface Dropper<T extends Wire> {
|
||||||
void drop(Wire wire);
|
void drop(T wire);
|
||||||
}
|
}
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
package com.codigoparallevar.minicards.types;
|
|
||||||
|
|
||||||
public interface InputConnector extends Selectable, Dropper {
|
|
||||||
void updatePosition(int x, int y);
|
|
||||||
|
|
||||||
int getX();
|
|
||||||
int getY();
|
|
||||||
|
|
||||||
void sendSignal();
|
|
||||||
|
|
||||||
void getAttachment(Wire wire);
|
|
||||||
|
|
||||||
Part getPart();
|
|
||||||
|
|
||||||
String getId();
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
package com.codigoparallevar.minicards.types;
|
|
||||||
|
|
||||||
import android.graphics.Canvas;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface OutputConnector extends Selectable, Dropper {
|
|
||||||
void drawWires(Canvas canvas, boolean devMode);
|
|
||||||
void updatePosition(int x, int y);
|
|
||||||
|
|
||||||
List<Tuple2<String, String>> getConnectionEndpoints();
|
|
||||||
|
|
||||||
void connectTo(InputConnector inputConnector);
|
|
||||||
}
|
|
@ -1,6 +1,8 @@
|
|||||||
package com.codigoparallevar.minicards.types;
|
package com.codigoparallevar.minicards.types;
|
||||||
|
|
||||||
import android.graphics.Canvas;
|
import com.codigoparallevar.minicards.types.connectors.input.InputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.input.SignalInputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.output.OutputConnector;
|
||||||
|
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
@ -15,7 +17,7 @@ public interface Part extends Selectable, Moveable, Drawable {
|
|||||||
|
|
||||||
void touched();
|
void touched();
|
||||||
|
|
||||||
List<InputConnector> getInputConnectors();
|
List<SignalInputConnector> getSignalInputConnectors();
|
||||||
List<OutputConnector> getOutputConnectors();
|
List<OutputConnector> getOutputConnectors();
|
||||||
|
|
||||||
JSONObject serialize() throws JSONException;
|
JSONObject serialize() throws JSONException;
|
||||||
@ -27,4 +29,5 @@ public interface Part extends Selectable, Moveable, Drawable {
|
|||||||
InputConnector getConnectorWithId(String inputConnectorId);
|
InputConnector getConnectorWithId(String inputConnectorId);
|
||||||
|
|
||||||
String getConnectorId(InputConnector inputConnector);
|
String getConnectorId(InputConnector inputConnector);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.codigoparallevar.minicards.types;
|
package com.codigoparallevar.minicards.types;
|
||||||
|
|
||||||
import com.codigoparallevar.minicards.parts.buttons.RoundButton;
|
import com.codigoparallevar.minicards.types.connectors.output.OutputConnector;
|
||||||
|
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
package com.codigoparallevar.minicards.types;
|
package com.codigoparallevar.minicards.types;
|
||||||
|
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.input.InputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.input.SignalInputConnector;
|
||||||
|
|
||||||
public interface PartGrid {
|
public interface PartGrid {
|
||||||
Selectable getPartOn(int x, int y);
|
Selectable getPartOn(int x, int y);
|
||||||
|
|
||||||
InputConnector getInputConnectorOn(int x, int y);
|
SignalInputConnector getSignalInputConnectorOn(int x, int y);
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,13 @@ package com.codigoparallevar.minicards.types;
|
|||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.input.SignalInputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.wireData.Signal;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class RoundInputConnector implements InputConnector {
|
public class RoundInputConnector implements SignalInputConnector {
|
||||||
private final Part _part;
|
private final Part _part;
|
||||||
private int _xposition;
|
private int _xposition;
|
||||||
private int _yposition;
|
private int _yposition;
|
||||||
@ -57,8 +60,9 @@ public class RoundInputConnector implements InputConnector {
|
|||||||
_part.sendSignal(this);
|
_part.sendSignal(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getAttachment(Wire wire) {
|
public void getAttachment(Wire<Signal, SignalInputConnector> wire) {
|
||||||
_attachments.add(wire);
|
_attachments.add(wire);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,17 +3,23 @@ package com.codigoparallevar.minicards.types;
|
|||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.input.InputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.input.SignalInputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.output.OutputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.output.SignalOutputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.wireData.Signal;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class RoundOutputConnector implements OutputConnector, Drawable {
|
public class RoundOutputConnector implements Drawable, SignalOutputConnector {
|
||||||
private PartGrid _partGrid;
|
private PartGrid _partGrid;
|
||||||
private int _centerX;
|
private int _centerX;
|
||||||
private int _centerY;
|
private int _centerY;
|
||||||
private final int _radius;
|
private final int _radius;
|
||||||
private final Part _part;
|
private final Part _part;
|
||||||
private Wire _currentWire = null;
|
private SignalWire _currentWire = null;
|
||||||
private final List<Wire> _wires;
|
private final List<SignalWire> _wires;
|
||||||
|
|
||||||
public RoundOutputConnector(Part part, PartGrid partGrid, int centerX, int centerY, int radius) {
|
public RoundOutputConnector(Part part, PartGrid partGrid, int centerX, int centerY, int radius) {
|
||||||
_part = part;
|
_part = part;
|
||||||
@ -41,15 +47,17 @@ public class RoundOutputConnector implements OutputConnector, Drawable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void startWire() {
|
private void startWire() {
|
||||||
_currentWire = new Wire(this, _centerX, _centerY);
|
_currentWire = new SignalWire(this, _centerX, _centerY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drop(Wire wire) {
|
public void drop(SignalWire wire) {
|
||||||
|
|
||||||
if (wire == _currentWire){
|
if (wire == _currentWire){
|
||||||
_currentWire = null;
|
_currentWire = null;
|
||||||
|
|
||||||
InputConnector resultPoint = _partGrid.getInputConnectorOn(wire.getXEnd(), wire.getYEnd());
|
SignalInputConnector resultPoint = _partGrid.getSignalInputConnectorOn(
|
||||||
|
wire.getXEnd(), wire.getYEnd());
|
||||||
|
|
||||||
Log.d("RoundOutputConnector", "Dropped wire on " + resultPoint);
|
Log.d("RoundOutputConnector", "Dropped wire on " + resultPoint);
|
||||||
|
|
||||||
@ -69,7 +77,7 @@ public class RoundOutputConnector implements OutputConnector, Drawable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawWires(Canvas canvas, boolean devMode) {
|
public void drawWires(Canvas canvas, boolean devMode) {
|
||||||
for (Wire wire : _wires) {
|
for (SignalWire wire : _wires) {
|
||||||
wire.draw(canvas, devMode);
|
wire.draw(canvas, devMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,7 +91,7 @@ public class RoundOutputConnector implements OutputConnector, Drawable {
|
|||||||
_centerX = x;
|
_centerX = x;
|
||||||
_centerY = y;
|
_centerY = y;
|
||||||
|
|
||||||
for (Wire wire : _wires){
|
for (SignalWire wire : _wires){
|
||||||
wire.moveStart(x, y);
|
wire.moveStart(x, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -92,7 +100,7 @@ public class RoundOutputConnector implements OutputConnector, Drawable {
|
|||||||
public List<Tuple2<String, String>> getConnectionEndpoints() {
|
public List<Tuple2<String, String>> getConnectionEndpoints() {
|
||||||
List<Tuple2<String, String>> endpointIds = new LinkedList<>();
|
List<Tuple2<String, String>> endpointIds = new LinkedList<>();
|
||||||
|
|
||||||
for (Wire wire : _wires) {
|
for (SignalWire wire : _wires) {
|
||||||
InputConnector inputConnector = wire.getAttachedTo();
|
InputConnector inputConnector = wire.getAttachedTo();
|
||||||
Part endPart = inputConnector.getPart();
|
Part endPart = inputConnector.getPart();
|
||||||
endpointIds.add(new Tuple2<>(inputConnector.getId(), endPart.getId()));
|
endpointIds.add(new Tuple2<>(inputConnector.getId(), endPart.getId()));
|
||||||
@ -102,8 +110,8 @@ public class RoundOutputConnector implements OutputConnector, Drawable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void connectTo(InputConnector inputConnector) {
|
public void connectTo(SignalInputConnector inputConnector) {
|
||||||
Wire wire = new Wire(this, _centerX, _centerY);
|
SignalWire wire = new SignalWire(this, _centerX, _centerY);
|
||||||
wire.attachTo(inputConnector);
|
wire.attachTo(inputConnector);
|
||||||
_wires.add(wire);
|
_wires.add(wire);
|
||||||
}
|
}
|
||||||
@ -114,7 +122,7 @@ public class RoundOutputConnector implements OutputConnector, Drawable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void sendSignal() {
|
public void sendSignal() {
|
||||||
for (Wire wire : _wires){
|
for (SignalWire wire : _wires){
|
||||||
wire.sendSignal();
|
wire.sendSignal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.codigoparallevar.minicards.types;
|
||||||
|
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.input.SignalInputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.wireData.Signal;
|
||||||
|
|
||||||
|
public class SignalWire extends Wire<Signal, SignalInputConnector> implements Moveable, Drawable {
|
||||||
|
public SignalWire(Dropper dropper, int xInit, int yInit) {
|
||||||
|
super(dropper, xInit, yInit);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendSignal() {
|
||||||
|
if (_attachedTo != null) {
|
||||||
|
_attachedTo.sendSignal();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -5,17 +5,21 @@ import android.graphics.Color;
|
|||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Path;
|
import android.graphics.Path;
|
||||||
|
|
||||||
public class Wire implements Moveable, Drawable {
|
import com.codigoparallevar.minicards.types.connectors.input.InputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.wireData.WireDataType;
|
||||||
|
|
||||||
|
public class Wire<T extends WireDataType, InputConnectorType extends InputConnector<T, InputConnectorType>>
|
||||||
|
implements Moveable, Drawable {
|
||||||
|
|
||||||
private final Dropper _dropper;
|
private final Dropper _dropper;
|
||||||
private int _xinit;
|
private int _xinit;
|
||||||
private int _yinit;
|
private int _yinit;
|
||||||
private int _xend;
|
private int _xend;
|
||||||
private int _yend;
|
private int _yend;
|
||||||
private final static int _pathRunWay = 100;
|
private final static int _pathRunWay = 100;
|
||||||
private InputConnector _attachedTo = null;
|
protected InputConnectorType _attachedTo = null;
|
||||||
|
|
||||||
public Wire(Dropper dropper, int xInit, int yInit) {
|
public Wire(Dropper dropper, int xInit, int yInit) {
|
||||||
super();
|
|
||||||
_dropper = dropper;
|
_dropper = dropper;
|
||||||
_xinit = xInit;
|
_xinit = xInit;
|
||||||
_yinit = yInit;
|
_yinit = yInit;
|
||||||
@ -67,19 +71,13 @@ public class Wire implements Moveable, Drawable {
|
|||||||
return _yend;
|
return _yend;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void attachTo(InputConnector resultPoint) {
|
public void attachTo(InputConnectorType resultPoint) {
|
||||||
_attachedTo = resultPoint;
|
_attachedTo = resultPoint;
|
||||||
_xend = resultPoint.getX();
|
_xend = resultPoint.getX();
|
||||||
_yend = resultPoint.getY();
|
_yend = resultPoint.getY();
|
||||||
resultPoint.getAttachment(this);
|
resultPoint.getAttachment(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendSignal() {
|
|
||||||
if (_attachedTo != null) {
|
|
||||||
_attachedTo.sendSignal();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public InputConnector getAttachedTo() {
|
public InputConnector getAttachedTo() {
|
||||||
return _attachedTo;
|
return _attachedTo;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,22 @@
|
|||||||
|
package com.codigoparallevar.minicards.types.connectors.input;
|
||||||
|
|
||||||
|
import com.codigoparallevar.minicards.types.Dropper;
|
||||||
|
import com.codigoparallevar.minicards.types.Part;
|
||||||
|
import com.codigoparallevar.minicards.types.Selectable;
|
||||||
|
import com.codigoparallevar.minicards.types.Wire;
|
||||||
|
import com.codigoparallevar.minicards.types.wireData.WireDataType;
|
||||||
|
|
||||||
|
public interface InputConnector<T extends WireDataType, T1 extends InputConnector<T, T1>>
|
||||||
|
extends Selectable, Dropper {
|
||||||
|
|
||||||
|
void updatePosition(int x, int y);
|
||||||
|
|
||||||
|
int getX();
|
||||||
|
int getY();
|
||||||
|
|
||||||
|
void getAttachment(Wire<T, T1> wire);
|
||||||
|
|
||||||
|
Part getPart();
|
||||||
|
|
||||||
|
String getId();
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.codigoparallevar.minicards.types.connectors.input;
|
||||||
|
|
||||||
|
import com.codigoparallevar.minicards.types.wireData.Signal;
|
||||||
|
|
||||||
|
public interface SignalInputConnector extends InputConnector<Signal, SignalInputConnector> {
|
||||||
|
void sendSignal();
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package com.codigoparallevar.minicards.types.connectors.output;
|
||||||
|
|
||||||
|
import android.graphics.Canvas;
|
||||||
|
|
||||||
|
import com.codigoparallevar.minicards.types.Dropper;
|
||||||
|
import com.codigoparallevar.minicards.types.Selectable;
|
||||||
|
import com.codigoparallevar.minicards.types.Tuple2;
|
||||||
|
import com.codigoparallevar.minicards.types.Wire;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.input.InputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.wireData.WireDataType;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface OutputConnector<T extends WireDataType,
|
||||||
|
T1 extends InputConnector<T, T1>,
|
||||||
|
T2 extends Wire<T, T1>>
|
||||||
|
extends Selectable, Dropper<T2> {
|
||||||
|
|
||||||
|
void drawWires(Canvas canvas, boolean devMode);
|
||||||
|
void updatePosition(int x, int y);
|
||||||
|
|
||||||
|
List<Tuple2<String, String>> getConnectionEndpoints();
|
||||||
|
|
||||||
|
void connectTo(T1 inputConnector);
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package com.codigoparallevar.minicards.types.connectors.output;
|
||||||
|
|
||||||
|
import com.codigoparallevar.minicards.types.SignalWire;
|
||||||
|
import com.codigoparallevar.minicards.types.connectors.input.SignalInputConnector;
|
||||||
|
import com.codigoparallevar.minicards.types.wireData.Signal;
|
||||||
|
|
||||||
|
public interface SignalOutputConnector extends OutputConnector<Signal, SignalInputConnector, SignalWire> {
|
||||||
|
void sendSignal();
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
package com.codigoparallevar.minicards.types.wireData;
|
||||||
|
|
||||||
|
public class Signal implements WireDataType {
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
package com.codigoparallevar.minicards.types.wireData;
|
||||||
|
|
||||||
|
public interface WireDataType {
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user