bricksize.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. exec("./keybinds.cs");
  2. exec("./package.cs");
  3. function rbsGetBrickSize(%data){
  4. return %data.brickSizeX SPC %data.brickSizeY SPC %data.brickSizeZ;
  5. }
  6. function rbsFindBrickSizes(){
  7. deleteVariables("$rbsBrickSizes*");
  8. deleteVariables("$rbsBrickWireSizes*");
  9. echo("rbs finding brick sizes");
  10. %dbCount = getDatablockGroupSize();
  11. for(%i=0; %i<%dbCount; %i++){
  12. %db = getDataBlock(%i);
  13. if(%db.getClassName()$="fxDtsBrickData"){
  14. if(%db.uiName!$="" && !%db.hasPrint){
  15. %size = rbsGetBrickSize(%db);
  16. if(%db.category$="Bricks" || %db.category$="Plates" || %db.category$="Baseplates" || %db.category$="Halfbricks"){
  17. if(
  18. strstr(%db.uiName, "Tile")==-1 &&
  19. strstr(%db.uiName, "Block")==-1 &&
  20. strstr(%db.uiName, "Brick Upright")==-1 &&
  21. strstr(%db.uiName, "O Brick")==-1 &&
  22. strstr(%db.uiName, "0.25")==-1 &&
  23. strstr(%db.uiName, "0.5")==-1 &&
  24. strstr(%db.uiName, "0.75")==-1 &&
  25. strstr(%db.subCategory, "Tetris")==-1 &&
  26. !(strstr(%db.uiName, "Flat")!=-1 && strstr(%db.uiName, "Brick")!=-1)
  27. ){
  28. if(!$rbsBrickSizes[%size]){
  29. $rbsBrickSizes[%size] = %db;
  30. }
  31. }
  32. }else if(%db.category$="Logic Bricks"){
  33. if(!$rbsBrickWireSizes[%size]){
  34. $rbsBrickWireSizes[%size] = %db;
  35. }
  36. }
  37. }
  38. }
  39. }
  40. }
  41. function rbsUseBrick(%db){
  42. if(!isObject(%db))return;
  43. %db = %db.getId();
  44. $rbsCurrBrick = %db;
  45. if(false){
  46. %slot=$CurrScrollBrickSlot;
  47. $BSD_InvData[%slot] = %db;
  48. $HUD_BrickIcon[%slot].setBitmap(""); //clear the slot image so the server can fill it
  49. $InvData[%slot] = -1.0;
  50. commandToServer('BuyBrick', %slot, $BSD_InvData[%slot]); //tell the server to give us this brick
  51. }else{
  52. commandToServer('InstantUseBrick', %db);
  53. }
  54. }
  55. function rbsUseBrickSize(%size, %wire){
  56. if(!%wire){
  57. %db = $rbsBrickSizes[%size];
  58. }else{
  59. %db = $rbsBrickWireSizes[%size];
  60. }
  61. if(%db){
  62. rbsUseBrick(%db);
  63. return 1;
  64. }
  65. return 0;
  66. }
  67. function rbsAddBrickSizeSuper(%size){
  68. if($SuperShift){
  69. %size = getWord(%size, 0)*8 SPC getWord(%size, 1)*8 SPC getWord(%size, 2)*5;
  70. }
  71. rbsAddBrickSize(%size);
  72. }
  73. function rbsAddBrickSize(%size){
  74. %size=vectorAdd(%size, $rbsCurrBrickSize);
  75. if(getWord(%size,0)<=0 || getWord(%size,1)<=0 || getWord(%size,2)<=0){
  76. %size=$rbsCurrBrickSize;
  77. }
  78. rbsUseBrickSize(%size, $rbsCurrBrick.category$="Logic Bricks");
  79. $rbsCurrBrickSize = %size;
  80. }
  81. function rbsBrickChanged(%slot,%data){
  82. if(!%data){ %data=$InvData[%slot]; }
  83. $rbsCurrBrickSize = rbsGetBrickSize(%data);
  84. $rbsCurrBrick = %data;
  85. }