This commit is contained in:
alschmiedt
2020-06-25 16:11:32 -07:00
committed by GitHub
parent 9e7f3b07e9
commit a1727b1717
35 changed files with 3070 additions and 2045 deletions

View File

@@ -77,10 +77,10 @@ Blockly.PHP.math_on_list=function(a){var b=a.getFieldValue("OP");switch(b){case
Blockly.PHP.math_constrain=function(a){var b=Blockly.PHP.valueToCode(a,"VALUE",Blockly.PHP.ORDER_COMMA)||"0",c=Blockly.PHP.valueToCode(a,"LOW",Blockly.PHP.ORDER_COMMA)||"0";a=Blockly.PHP.valueToCode(a,"HIGH",Blockly.PHP.ORDER_COMMA)||"Infinity";return["min(max("+b+", "+c+"), "+a+")",Blockly.PHP.ORDER_FUNCTION_CALL]};
Blockly.PHP.math_random_int=function(a){var b=Blockly.PHP.valueToCode(a,"FROM",Blockly.PHP.ORDER_COMMA)||"0";a=Blockly.PHP.valueToCode(a,"TO",Blockly.PHP.ORDER_COMMA)||"0";return[Blockly.PHP.provideFunction_("math_random_int",["function "+Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_+"($a, $b) {"," if ($a > $b) {"," return rand($b, $a);"," }"," return rand($a, $b);","}"])+"("+b+", "+a+")",Blockly.PHP.ORDER_FUNCTION_CALL]};
Blockly.PHP.math_random_float=function(a){return["(float)rand()/(float)getrandmax()",Blockly.PHP.ORDER_FUNCTION_CALL]};Blockly.PHP.math_atan2=function(a){var b=Blockly.PHP.valueToCode(a,"X",Blockly.PHP.ORDER_COMMA)||"0";return["atan2("+(Blockly.PHP.valueToCode(a,"Y",Blockly.PHP.ORDER_COMMA)||"0")+", "+b+") / pi() * 180",Blockly.PHP.ORDER_DIVISION]};Blockly.PHP.procedures={};
Blockly.PHP.procedures_defreturn=function(a){for(var b=[],c,d=a.workspace,e=Blockly.Variables.allUsedVarModels(d)||[],f=0;c=e[f];f++)c=c.name,-1==a.arguments_.indexOf(c)&&b.push(Blockly.PHP.variableDB_.getName(c,Blockly.VARIABLE_CATEGORY_NAME));d=Blockly.Variables.allDeveloperVariables(d);for(f=0;f<d.length;f++)b.push(Blockly.PHP.variableDB_.getName(d[f],Blockly.Names.DEVELOPER_VARIABLE_TYPE));b=b.length?Blockly.PHP.INDENT+"global "+b.join(", ")+";\n":"";d=Blockly.PHP.variableDB_.getName(a.getFieldValue("NAME"),Blockly.PROCEDURE_CATEGORY_NAME);
e="";Blockly.PHP.STATEMENT_PREFIX&&(e+=Blockly.PHP.injectId(Blockly.PHP.STATEMENT_PREFIX,a));Blockly.PHP.STATEMENT_SUFFIX&&(e+=Blockly.PHP.injectId(Blockly.PHP.STATEMENT_SUFFIX,a));e&&(e=Blockly.PHP.prefixLines(e,Blockly.PHP.INDENT));c="";Blockly.PHP.INFINITE_LOOP_TRAP&&(c=Blockly.PHP.prefixLines(Blockly.PHP.injectId(Blockly.PHP.INFINITE_LOOP_TRAP,a),Blockly.PHP.INDENT));var g=Blockly.PHP.statementToCode(a,"STACK"),h=Blockly.PHP.valueToCode(a,"RETURN",Blockly.PHP.ORDER_NONE)||"",k="";g&&h&&(k=e);
h&&(h=Blockly.PHP.INDENT+"return "+h+";\n");var l=[];for(f=0;f<a.arguments_.length;f++)l[f]=Blockly.PHP.variableDB_.getName(a.arguments_[f],Blockly.VARIABLE_CATEGORY_NAME);b="function "+d+"("+l.join(", ")+") {\n"+b+e+c+g+k+h+"}";b=Blockly.PHP.scrub_(a,b);Blockly.PHP.definitions_["%"+d]=b;return null};Blockly.PHP.procedures_defnoreturn=Blockly.PHP.procedures_defreturn;
Blockly.PHP.procedures_callreturn=function(a){for(var b=Blockly.PHP.variableDB_.getName(a.getFieldValue("NAME"),Blockly.PROCEDURE_CATEGORY_NAME),c=[],d=0;d<a.arguments_.length;d++)c[d]=Blockly.PHP.valueToCode(a,"ARG"+d,Blockly.PHP.ORDER_COMMA)||"null";return[b+"("+c.join(", ")+")",Blockly.PHP.ORDER_FUNCTION_CALL]};Blockly.PHP.procedures_callnoreturn=function(a){return Blockly.PHP.procedures_callreturn(a)[0]+";\n"};
Blockly.PHP.procedures_defreturn=function(a){for(var b=[],c,d=a.workspace,e=Blockly.Variables.allUsedVarModels(d)||[],f=0;c=e[f];f++)c=c.name,-1==a.getVars().indexOf(c)&&b.push(Blockly.PHP.variableDB_.getName(c,Blockly.VARIABLE_CATEGORY_NAME));e=Blockly.Variables.allDeveloperVariables(d);for(f=0;f<e.length;f++)b.push(Blockly.PHP.variableDB_.getName(e[f],Blockly.Names.DEVELOPER_VARIABLE_TYPE));b=b.length?Blockly.PHP.INDENT+"global "+b.join(", ")+";\n":"";d=Blockly.PHP.variableDB_.getName(a.getFieldValue("NAME"),Blockly.PROCEDURE_CATEGORY_NAME);
c="";Blockly.PHP.STATEMENT_PREFIX&&(c+=Blockly.PHP.injectId(Blockly.PHP.STATEMENT_PREFIX,a));Blockly.PHP.STATEMENT_SUFFIX&&(c+=Blockly.PHP.injectId(Blockly.PHP.STATEMENT_SUFFIX,a));c&&(c=Blockly.PHP.prefixLines(c,Blockly.PHP.INDENT));var g="";Blockly.PHP.INFINITE_LOOP_TRAP&&(g=Blockly.PHP.prefixLines(Blockly.PHP.injectId(Blockly.PHP.INFINITE_LOOP_TRAP,a),Blockly.PHP.INDENT));var k=Blockly.PHP.statementToCode(a,"STACK"),h=Blockly.PHP.valueToCode(a,"RETURN",Blockly.PHP.ORDER_NONE)||"",l="";k&&h&&(l=
c);h&&(h=Blockly.PHP.INDENT+"return "+h+";\n");var m=[];e=a.getVars();for(f=0;f<e.length;f++)m[f]=Blockly.PHP.variableDB_.getName(e[f],Blockly.VARIABLE_CATEGORY_NAME);b="function "+d+"("+m.join(", ")+") {\n"+b+c+g+k+l+h+"}";b=Blockly.PHP.scrub_(a,b);Blockly.PHP.definitions_["%"+d]=b;return null};Blockly.PHP.procedures_defnoreturn=Blockly.PHP.procedures_defreturn;
Blockly.PHP.procedures_callreturn=function(a){for(var b=Blockly.PHP.variableDB_.getName(a.getFieldValue("NAME"),Blockly.PROCEDURE_CATEGORY_NAME),c=[],d=a.getVars(),e=0;e<d.length;e++)c[e]=Blockly.PHP.valueToCode(a,"ARG"+e,Blockly.PHP.ORDER_COMMA)||"null";return[b+"("+c.join(", ")+")",Blockly.PHP.ORDER_FUNCTION_CALL]};Blockly.PHP.procedures_callnoreturn=function(a){return Blockly.PHP.procedures_callreturn(a)[0]+";\n"};
Blockly.PHP.procedures_ifreturn=function(a){var b="if ("+(Blockly.PHP.valueToCode(a,"CONDITION",Blockly.PHP.ORDER_NONE)||"false")+") {\n";Blockly.PHP.STATEMENT_SUFFIX&&(b+=Blockly.PHP.prefixLines(Blockly.PHP.injectId(Blockly.PHP.STATEMENT_SUFFIX,a),Blockly.PHP.INDENT));a.hasReturnValue_?(a=Blockly.PHP.valueToCode(a,"VALUE",Blockly.PHP.ORDER_NONE)||"null",b+=Blockly.PHP.INDENT+"return "+a+";\n"):b+=Blockly.PHP.INDENT+"return;\n";return b+"}\n"};Blockly.PHP.texts={};Blockly.PHP.text=function(a){return[Blockly.PHP.quote_(a.getFieldValue("TEXT")),Blockly.PHP.ORDER_ATOMIC]};Blockly.PHP.text_multiline=function(a){return[Blockly.PHP.multiline_quote_(a.getFieldValue("TEXT")),Blockly.PHP.ORDER_ATOMIC]};
Blockly.PHP.text_join=function(a){if(0==a.itemCount_)return["''",Blockly.PHP.ORDER_ATOMIC];if(1==a.itemCount_)return[Blockly.PHP.valueToCode(a,"ADD0",Blockly.PHP.ORDER_NONE)||"''",Blockly.PHP.ORDER_FUNCTION_CALL];if(2==a.itemCount_){var b=Blockly.PHP.valueToCode(a,"ADD0",Blockly.PHP.ORDER_ATOMIC)||"''";a=Blockly.PHP.valueToCode(a,"ADD1",Blockly.PHP.ORDER_ATOMIC)||"''";return[b+" . "+a,Blockly.PHP.ORDER_STRING_CONCAT]}b=Array(a.itemCount_);for(var c=0;c<a.itemCount_;c++)b[c]=Blockly.PHP.valueToCode(a,
"ADD"+c,Blockly.PHP.ORDER_COMMA)||"''";a="implode('', array("+b.join(",")+"))";return[a,Blockly.PHP.ORDER_FUNCTION_CALL]};Blockly.PHP.text_append=function(a){var b=Blockly.PHP.variableDB_.getName(a.getFieldValue("VAR"),Blockly.VARIABLE_CATEGORY_NAME);a=Blockly.PHP.valueToCode(a,"TEXT",Blockly.PHP.ORDER_ASSIGNMENT)||"''";return b+" .= "+a+";\n"};