51
51
import vazkii .psi .api .spell .SpellCompilationException ;
52
52
import vazkii .psi .api .spell .SpellGrid ;
53
53
import vazkii .psi .api .spell .SpellParam ;
54
+ import vazkii .psi .api .spell .SpellParam .Side ;
54
55
import vazkii .psi .api .spell .SpellPiece ;
55
56
import vazkii .psi .client .core .helper .SharingHelper ;
56
57
import vazkii .psi .client .gui .button .GuiButtonHelp ;
71
72
import vazkii .psi .common .network .MessageRegister ;
72
73
import vazkii .psi .common .network .message .MessageSpellModified ;
73
74
import vazkii .psi .common .spell .SpellCompiler ;
75
+ import vazkii .psi .common .spell .other .PieceConnector ;
74
76
import vazkii .psi .mixin .client .AccessorRenderState ;
75
77
76
78
import java .util .ArrayList ;
@@ -675,6 +677,14 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
675
677
if (!onSideButtonKeybind (piece , param , SpellParam .Side .TOP ) && selectedY > 0 ) {
676
678
selectedY --;
677
679
onSelectedChanged ();
680
+ if (hasShiftDown () && spell .grid .gridData [selectedX ][selectedY ] == null ) {
681
+ PieceConnector connector = new PieceConnector (spell );
682
+ connector .x = selectedX ;
683
+ connector .y = selectedY ;
684
+ connector .paramSides .put (connector .target , Side .BOTTOM );
685
+ spell .grid .gridData [selectedX ][selectedY ] = connector ;
686
+ onSpellChanged (false );
687
+ }
678
688
return true ;
679
689
}
680
690
}
@@ -696,6 +706,14 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
696
706
if (!onSideButtonKeybind (piece , param , SpellParam .Side .LEFT ) && selectedX > 0 ) {
697
707
selectedX --;
698
708
onSelectedChanged ();
709
+ if (hasShiftDown () && spell .grid .gridData [selectedX ][selectedY ] == null ) {
710
+ PieceConnector connector = new PieceConnector (spell );
711
+ connector .x = selectedX ;
712
+ connector .y = selectedY ;
713
+ connector .paramSides .put (connector .target , Side .RIGHT );
714
+ spell .grid .gridData [selectedX ][selectedY ] = connector ;
715
+ onSpellChanged (false );
716
+ }
699
717
return true ;
700
718
}
701
719
}
@@ -717,6 +735,14 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
717
735
if (!onSideButtonKeybind (piece , param , SpellParam .Side .RIGHT ) && selectedX < SpellGrid .GRID_SIZE - 1 ) {
718
736
selectedX ++;
719
737
onSelectedChanged ();
738
+ if (hasShiftDown () && spell .grid .gridData [selectedX ][selectedY ] == null ) {
739
+ PieceConnector connector = new PieceConnector (spell );
740
+ connector .x = selectedX ;
741
+ connector .y = selectedY ;
742
+ connector .paramSides .put (connector .target , Side .LEFT );
743
+ spell .grid .gridData [selectedX ][selectedY ] = connector ;
744
+ onSpellChanged (false );
745
+ }
720
746
return true ;
721
747
}
722
748
}
@@ -738,6 +764,14 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
738
764
if (!onSideButtonKeybind (piece , param , SpellParam .Side .BOTTOM ) && selectedY < SpellGrid .GRID_SIZE - 1 ) {
739
765
selectedY ++;
740
766
onSelectedChanged ();
767
+ if (hasShiftDown () && spell .grid .gridData [selectedX ][selectedY ] == null ) {
768
+ PieceConnector connector = new PieceConnector (spell );
769
+ connector .x = selectedX ;
770
+ connector .y = selectedY ;
771
+ connector .paramSides .put (connector .target , Side .TOP );
772
+ spell .grid .gridData [selectedX ][selectedY ] = connector ;
773
+ onSpellChanged (false );
774
+ }
741
775
return true ;
742
776
}
743
777
}
0 commit comments