Triangle draw command

This commit is contained in:
Anuken
2020-08-11 12:54:39 -04:00
parent 188171ec03
commit 25e04ca3e5
4 changed files with 26 additions and 12 deletions

View File

@@ -406,9 +406,9 @@ public class LExecutor{
public static class DrawI implements LInstruction{
public byte type;
public int target;
public int x, y, p1, p2, p3;
public int x, y, p1, p2, p3, p4;
public DrawI(byte type, int target, int x, int y, int p1, int p2, int p3){
public DrawI(byte type, int target, int x, int y, int p1, int p2, int p3, int p4){
this.type = type;
this.target = target;
this.x = x;
@@ -416,6 +416,7 @@ public class LExecutor{
this.p1 = p1;
this.p2 = p2;
this.p3 = p3;
this.p4 = p4;
}
public DrawI(){
@@ -428,7 +429,7 @@ public class LExecutor{
//add graphics calls, cap graphics buffer size
if(exec.graphicsBuffer.size < maxGraphicsBuffer){
exec.graphicsBuffer.add(DisplayCmd.get(type, exec.numi(x), exec.numi(y), exec.numi(p1), exec.numi(p2), exec.numi(p3)));
exec.graphicsBuffer.add(DisplayCmd.get(type, exec.numi(x), exec.numi(y), exec.numi(p1), exec.numi(p2), exec.numi(p3), exec.numi(p4)));
}
}
}

View File

@@ -123,8 +123,8 @@ public class LStatements{
@RegisterStatement("draw")
public static class DrawStatement extends LStatement{
public GraphicsType type = GraphicsType.line;
public String x = "0", y = "0", p1 = "0", p2 = "0", p3 = "0";
public GraphicsType type = GraphicsType.clear;
public String x = "0", y = "0", p1 = "0", p2 = "0", p3 = "0", p4 = "0";
@Override
public void build(Table table){
@@ -188,6 +188,16 @@ public class LStatements{
s.row();
fields(s, "rotation", p3, v -> p3 = v);
break;
case triangle:
fields(s, "x", x, v -> x = v);
fields(s, "y", y, v -> y = v);
s.row();
fields(s, "x2", p1, v -> p1 = v);
fields(s, "y2", p2, v -> p2 = v);
s.row();
fields(s, "x3", p3, v -> p3 = v);
fields(s, "y3", p4, v -> p4 = v);
break;
}
}).expand().left();
@@ -200,7 +210,7 @@ public class LStatements{
@Override
public LInstruction build(LAssembler builder){
return new DrawI((byte)type.ordinal(), 0, builder.var(x), builder.var(y), builder.var(p1), builder.var(p2), builder.var(p3));
return new DrawI((byte)type.ordinal(), 0, builder.var(x), builder.var(y), builder.var(p1), builder.var(p2), builder.var(p3), builder.var(p4));
}
}