{ "name" : "Int to State", "attributes": [ { "name": "Value", "type": "Number", "connection": "Input", "editable": false }, { "name": "Enabled", "type": "Boolean", "connection": "Input", "editable": false, "value":false }, { "name": "Max Number", "type": "Number", "connection": "None", "value":3, "editable": true }, { "name": "0", "type": "Boolean", "connection": "Output", "editable": true }, { "name": "1", "type": "Boolean", "connection": "Output", "editable": true }, { "name": "2", "type": "Boolean", "connection": "Output", "editable": true }, { "name": "3", "type": "Boolean", "connection": "Output", "editable": true } ], "script": "//by Smart Penguins https://www.youtube.com/channel/UCHDFEsDQ8dKjEBEVCbAPZZw/ let enabled; let max; let current; function init(){ max=this.attribute('Max Number'); current=max; } function start(){ for(let i=0;i<=max;i++){ this.emitSignal(String(i),false); } this.signal('Enabled', this.attribute('Enabled')); } function update(dt){ } function signal(name, value){ if(name=='Enabled'){ enabled=value; this.emitSignal(String(current),value); }else if(name=='Value'){ if(value>max){ error('Value for Int to State is greater than Max Number'); return; } if(enabled){ this.emitSignal(String(current),false); this.emitSignal(String(value),true); } current=value; } } " }