{ "name" : "Math", "attributes": [ { "name": "In", "type": "Number", "connection": "Input", "editable": true }, { "name": "Out", "type": "Number", "connection": "Output", "editable": true }, { "name": "Operation", "type": "Dropdown", "value": { "default": "kAdd", "options": { "Replace": "kReplace", "Add": "kAdd", "Multiply": "kMultiply", "Subtract": "kSubtract", "Divided": "kDivided", "Modulo": "kModulo", "Sin": "kSin", "Cos": "kCos", "Tan": "kTan", "Pow": "kPow" } }, "connection": "None", "editable": true }, { "name": "Number", "type": "Number", "value": "1", "connection": "None", "editable": true }, { "name": "Flip Eq.", "type": "Boolean", "value": false, "connection": "None", "editable": true }, { "name": "Round", "type": "Dropdown", "value": { "default": "kNone", "options": { "No": "kNone", "Yes": "kRound", "Up": "kCeil", "Down": "kFloor" } }, "connection": "None", "editable": true } ], "script": "//by Smart Penguins https://www.youtube.com/c/smartpenguins let operation = 'kAdd'; let round = 'kNone'; let flip = false; let number = 0; function init(){ number = this.attribute('Number'); operation = this.attribute('Operation'); round = this.attribute('Round'); flip = this.attribute('Flip Eq.'); } function signal(name, value){ let a = value; let b = number; if(flip){ a = number; b = value; } let c = 0; switch(operation){ case 'kReplace':{ c = number; break; } case 'kAdd':{ c = a+b; break; } case 'kMultiply':{ c = a*b; break; } case 'kSubtract':{ c = a-b; break; } case 'kDivided':{ c = a/b; break; } case 'kModulo':{ c = a%b; break; } case 'kSin':{ c = Math.sin(a)*b; break; } case 'kCos':{ c = Math.cos(a)*b; break; } case 'kTan':{ c = Math.tan(a)*b; break; } case 'kPow':{ c = Math.pow(a,b); break; } } switch(round){ case 'kNone':{ break; } case 'kRound':{ c = Math.round(c); break; } case 'kCeil':{ c = Math.ceil(c); break; } case 'kFloor':{ c = Math.floor(c); break; } } this.emitSignal('Out', c); } " }