diff --git a/plugins/length converter.json b/plugins/length converter.json new file mode 100644 index 000000000..8000eb0f3 --- /dev/null +++ b/plugins/length converter.json @@ -0,0 +1,40 @@ +{ + "HIGHLIGHTSTROKECOLORS": { + "converter": "#000000" + }, + "ARGPLUGINS": { + "from_ft": "var block = logo.blocks.blockList[blk];var conns = block.connections;var arg = logo.parseArg(logo, turtle, conns[1]);var unit = logo.parseArg(logo, turtle, conns[2]);if (unit == 'mm'){ block.value = (arg*1/0.0032808398950131);}if (unit == 'cm'){ block.value = (arg*1/0.032808398950131);}if (unit == 'm'){ block.value = (arg*1/3.2808398950131);}if (unit == 'km'){ block.value = (arg*1/3280.8398950131 );}if (unit == 'in'){ block.value = (arg*1/0.083333333333333);}if (unit == 'ft'){ block.value = (arg*1/1);}if (unit == 'yd'){ block.value = (arg*1/3);}if (unit == 'mi'){ block.value = (arg*1/5280);}if (unit == 'nmi'){ block.value = (arg*1/ 6076.1154855643);}", + "from_km": "var block = logo.blocks.blockList[blk];var conns = block.connections;var arg = logo.parseArg(logo, turtle, conns[1]);var unit = logo.parseArg(logo, turtle, conns[2]);if (unit == 'mm'){ block.value = (arg*1/0.000001);}if (unit == 'cm'){ block.value = (arg*1/0.00001);}if (unit == 'm'){ block.value = (arg*1/0.001);}if (unit == 'km'){ block.value = (arg*1/1);}if (unit == 'in'){ block.value = (arg*1/0.0000254);}if (unit == 'ft'){ block.value = (arg*1/0.0003048);}if (unit == 'yd'){ block.value = (arg*1/0.0009144);}if (unit == 'mi'){ block.value = (arg*1/1.609344);}if (unit == 'nmi'){ block.value = (arg*1/1.852);}", + "from_yd": "var block = logo.blocks.blockList[blk];var conns = block.connections;var arg = logo.parseArg(logo, turtle, conns[1]);var unit = logo.parseArg(logo, turtle, conns[2]);if (unit == 'mm'){ block.value = (arg*1/0.0010936132983377);}if (unit == 'cm'){ block.value = (arg*1/0.0.010936132983377);}if (unit == 'm'){ block.value = (arg*1/1.0936132983377);}if (unit == 'km'){ block.value = (arg*1/1093.6132983377);}if (unit == 'in'){ block.value = (arg*1/0.027777777777778);}if (unit == 'ft'){ block.value = (arg*1/0.33333333333333);}if (unit == 'yd'){ block.value = (arg*1/1);}if (unit == 'mi'){ block.value = (arg*1/1760);}if (unit == 'nmi'){ block.value = (arg*1/ 2025.3718285214);}", + "from_cm": "var block = logo.blocks.blockList[blk];var conns = block.connections;var arg = logo.parseArg(logo, turtle, conns[1]);var unit = logo.parseArg(logo, turtle, conns[2]);if (unit == 'mm'){ block.value = (arg*1/0.1);}if (unit == 'cm'){ block.value = (arg);}if (unit == 'm'){ block.value = (arg*1/100);}if (unit == 'km'){ block.value = (arg*1/100000);}if (unit == 'in'){ block.value = (arg*1/2.54);}if (unit == 'ft'){ block.value = (arg*1/30.48);}if (unit == 'yd'){ block.value = (arg*1/91.44);}if (unit == 'mi'){ block.value = (arg*1/160934.4);}if (unit == 'nmi'){ block.value = (arg*1/185200);}", + "from_in": "var block = logo.blocks.blockList[blk];var conns = block.connections;var arg = logo.parseArg(logo, turtle, conns[1]);var unit = logo.parseArg(logo, turtle, conns[2]);if (unit == 'mm'){ block.value = (arg*1/0.039370078740157);}if (unit == 'cm'){ block.value = (arg*1/0.39370078740157);}if (unit == 'm'){ block.value = (arg*1/39.370078740157);}if (unit == 'km'){ block.value = (arg*1/39370.078740157);}if (unit == 'in'){ block.value = (arg*1/1);}if (unit == 'ft'){ block.value = (arg*1/12);}if (unit == 'yd'){ block.value = (arg*1/36);}if (unit == 'mi'){ block.value = (arg*1/63360);}if (unit == 'nmi'){ block.value = (arg*1/72913.385826772);}", + "from_m": "var block = logo.blocks.blockList[blk];var conns = block.connections;var arg = logo.parseArg(logo, turtle, conns[1]);var unit = logo.parseArg(logo, turtle, conns[2]);if (unit == 'mm'){ block.value = (arg*1/0.001);}if (unit == 'cm'){ block.value = (arg*1/0.01);}if (unit == 'm'){ block.value = (arg*1/1);}if (unit == 'km'){ block.value = (arg*1/1000);}if (unit == 'in'){ block.value = (arg*1/0.0254);}if (unit == 'ft'){ block.value = (arg*1/0.3048);}if (unit == 'yd'){ block.value = (arg*1/0.9144);}if (unit == 'mi'){ block.value = (arg*1/1609.344);}if (unit == 'nmi'){ block.value = (arg*1/1852);}", + "from_mm": "var block = logo.blocks.blockList[blk];var conns = block.connections;var arg = logo.parseArg(logo, turtle, conns[1]);var unit = logo.parseArg(logo, turtle, conns[2]);if (unit == 'mm'){ block.value = (arg);}if (unit == 'cm'){ block.value = (arg*1/10);}if (unit == 'm'){ block.value = (arg*1/1000);}if (unit == 'km'){ block.value = (arg*1/1000000);}if (unit == 'in'){ block.value = (arg*1/25.4);}if (unit == 'ft'){ block.value = (arg*1/304.8);}if (unit == 'yd'){ block.value = (arg*1/914.4);}if (unit == 'mi'){ block.value = (arg*1/1609344);}if (unit == 'nmi'){ block.value = (arg*1/1852000);}", + "from_nmi": "var block = logo.blocks.blockList[blk];var conns = block.connections;var arg = logo.parseArg(logo, turtle, conns[1]);var unit = logo.parseArg(logo, turtle, conns[2]);if (unit == 'mm'){ block.value = (arg*1/0.00000053995680345572);}if (unit == 'cm'){ block.value = (arg*1/0.0000053995680345572);}if (unit == 'm'){ block.value = (arg*1/0.00053995680345572);}if (unit == 'km'){ block.value = (arg*1/0.53995680345572);}if (unit == 'in'){ block.value = (arg*1/0.000013714902807775);}if (unit == 'ft'){ block.value = (arg*1/0.0001645788336933);}if (unit == 'yd'){ block.value = (arg*1/0.00049373650107991);}if (unit == 'mi'){ block.value = (arg*1/0.86897624190065);}if (unit == 'nmi'){ block.value = (arg*1/1);}", + "from_mi": "var block = logo.blocks.blockList[blk];var conns = block.connections;var arg = logo.parseArg(logo, turtle, conns[1]);var unit = logo.parseArg(logo, turtle, conns[2]);if (unit == 'mm'){ block.value = (arg*1/0.00000062137119223733);}if (unit == 'cm'){ block.value = (arg*1/0.0000062137119223733);}if (unit == 'm'){ block.value = (arg*1/0.00062137119223733);}if (unit == 'km'){ block.value = (arg*1/0.62137119223733);}if (unit == 'in'){ block.value = (arg*1/0.000015782828282828);}if (unit == 'ft'){ block.value = (arg*1/0.00018939393939394);}if (unit == 'yd'){ block.value = (arg*1/0.00056818181818182);}if (unit == 'mi'){ block.value = (arg*1/1);}if (unit == 'nmi'){ block.value = (arg*1/1.1507794480235);}" + }, + "PALETTEHIGHLIGHTCOLORS": { + "converter": "#FF9FFF" + }, + "PALETTEPLUGINS": { + "converter": "len" + }, + "BLOCKPLUGINS": { + "from_ft": "var convertBlock = function (name, label, arg1, arg2) { var protoblock = new ProtoBlock(name); protoblock.palette = palettes.dict['converter']; blocks.protoBlockDict[name] = protoblock; protoblock.staticLabels.push(label, _('number'), _('unit to convert')); protoblock.adjustWidthToLabel(); protoblock.twoArgMathBlock(); protoblock.dockTypes[2] = 'anyin'; protoblock.defaults.push(arg1); protoblock.defaults.push(arg2);};convertBlock('from_ft', 'from ft', 1000, 'ft');", + "from_km": "var convertBlock = function (name, label, arg1, arg2) { var protoblock = new ProtoBlock(name); protoblock.palette = palettes.dict['converter']; blocks.protoBlockDict[name] = protoblock; protoblock.staticLabels.push(label, _('number'), _('unit to convert')); protoblock.adjustWidthToLabel(); protoblock.twoArgMathBlock(); protoblock.dockTypes[2] = 'anyin'; protoblock.defaults.push(arg1); protoblock.defaults.push(arg2);};convertBlock('from_km', 'from km', 1000, 'km');", + "from_yd": "var convertBlock = function (name, label, arg1, arg2) { var protoblock = new ProtoBlock(name); protoblock.palette = palettes.dict['converter']; blocks.protoBlockDict[name] = protoblock; protoblock.staticLabels.push(label, _('number'), _('unit to convert')); protoblock.adjustWidthToLabel(); protoblock.twoArgMathBlock(); protoblock.dockTypes[2] = 'anyin'; protoblock.defaults.push(arg1); protoblock.defaults.push(arg2);};convertBlock('from_yd', 'from yd', 1000, 'yd');", + "from_cm": "var convertBlock = function (name, label, arg1, arg2) { var protoblock = new ProtoBlock(name); protoblock.palette = palettes.dict['converter']; blocks.protoBlockDict[name] = protoblock; protoblock.staticLabels.push(label, _('number'), _('unit to convert')); protoblock.adjustWidthToLabel(); protoblock.twoArgMathBlock(); protoblock.dockTypes[2] = 'anyin'; protoblock.defaults.push(arg1); protoblock.defaults.push(arg2);};convertBlock('from_cm', 'from cm', 1000, 'cm');", + "from_in": "var convertBlock = function (name, label, arg1, arg2) { var protoblock = new ProtoBlock(name); protoblock.palette = palettes.dict['converter']; blocks.protoBlockDict[name] = protoblock; protoblock.staticLabels.push(label, _('number'), _('unit to convert')); protoblock.adjustWidthToLabel(); protoblock.twoArgMathBlock(); protoblock.dockTypes[2] = 'anyin'; protoblock.defaults.push(arg1); protoblock.defaults.push(arg2);};convertBlock('from_in', 'from in', 1000, 'in');", + "from_m": "var convertBlock = function (name, label, arg1, arg2) { var protoblock = new ProtoBlock(name); protoblock.palette = palettes.dict['converter']; blocks.protoBlockDict[name] = protoblock; protoblock.staticLabels.push(label, _('number'), _('unit to convert')); protoblock.adjustWidthToLabel(); protoblock.twoArgMathBlock(); protoblock.dockTypes[2] = 'anyin'; protoblock.defaults.push(arg1); protoblock.defaults.push(arg2);};convertBlock('from_m', 'from m', 1000, 'm');", + "from_mm": "var convertBlock = function (name, label, arg1, arg2) { var protoblock = new ProtoBlock(name); protoblock.palette = palettes.dict['converter']; blocks.protoBlockDict[name] = protoblock; protoblock.staticLabels.push(label, _('number'), _('unit to convert')); protoblock.adjustWidthToLabel(); protoblock.twoArgMathBlock(); protoblock.dockTypes[2] = 'anyin'; protoblock.defaults.push(arg1); protoblock.defaults.push(arg2);};convertBlock('from_mm', 'from mm', 1000, 'mm');", + "from_nmi": "var convertBlock = function (name, label, arg1, arg2) { var protoblock = new ProtoBlock(name); protoblock.palette = palettes.dict['converter']; blocks.protoBlockDict[name] = protoblock; protoblock.staticLabels.push(label, _('number'), _('unit to convert')); protoblock.adjustWidthToLabel(); protoblock.twoArgMathBlock(); protoblock.dockTypes[2] = 'anyin'; protoblock.defaults.push(arg1); protoblock.defaults.push(arg2);};convertBlock('from_nmi', 'from nmi', 1000, 'nmi');", + "from_mi": "var convertBlock = function (name, label, arg1, arg2) { var protoblock = new ProtoBlock(name); protoblock.palette = palettes.dict['converter']; blocks.protoBlockDict[name] = protoblock; protoblock.staticLabels.push(label, _('number'), _('unit to convert')); protoblock.adjustWidthToLabel(); protoblock.twoArgMathBlock(); protoblock.dockTypes[2] = 'anyin'; protoblock.defaults.push(arg1); protoblock.defaults.push(arg2);};convertBlock('from_mi', 'from mi', 1000, 'mi');" + }, + "PALETTEFILLCOLORS": { + "converter": "#ff00ff" + }, + "PALETTESTROKECOLORS": { + "converter": "#C700D3" + } +} + diff --git a/plugins/length_converter_(rtp).rtp b/plugins/length_converter_(rtp).rtp new file mode 100644 index 000000000..aea3f0c8f --- /dev/null +++ b/plugins/length_converter_(rtp).rtp @@ -0,0 +1,367 @@ +//* comment *// + +Copyright (C) 2015 Hitesh Agarwal + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + + +//* arg-globals *// +var block = logo.blocks.blockList[blk]; +var conns = block.connections; + +//* block-globals *// +var convertBlock = function (name, label, arg1, arg2) { + var protoblock = new ProtoBlock(name); + protoblock.palette = palettes.dict['converter']; + blocks.protoBlockDict[name] = protoblock; + protoblock.staticLabels.push(label, _('number'), _('unit to convert')); + protoblock.adjustWidthToLabel(); + protoblock.twoArgMathBlock(); + protoblock.dockTypes[2] = 'anyin'; + protoblock.defaults.push(arg1); + protoblock.defaults.push(arg2); +}; + + + +//* block:from_mm *// +convertBlock('from_mm', 'from mm', 1000, 'mm'); + +//* arg:from_mm *// +var arg = logo.parseArg(logo, turtle, conns[1]); +var unit = logo.parseArg(logo, turtle, conns[2]); +if (unit == 'mm'){ + block.value = (arg); +} +if (unit == 'cm'){ + block.value = (arg*1/10); +} +if (unit == 'm'){ + block.value = (arg*1/1000); +} +if (unit == 'km'){ + block.value = (arg*1/1000000); +} +if (unit == 'in'){ + block.value = (arg*1/25.4); +} +if (unit == 'ft'){ + block.value = (arg*1/304.8); +} +if (unit == 'yd'){ + block.value = (arg*1/914.4); +} +if (unit == 'mi'){ + block.value = (arg*1/1609344); +} +if (unit == 'nmi'){ + block.value = (arg*1/1852000); +} + + + +//* block:from_cm *// +convertBlock('from_cm', 'from cm', 1000, 'cm'); + +//* arg:from_cm *// +var arg = logo.parseArg(logo, turtle, conns[1]); +var unit = logo.parseArg(logo, turtle, conns[2]); +if (unit == 'mm'){ + block.value = (arg*1/0.1); +} +if (unit == 'cm'){ + block.value = (arg); +} +if (unit == 'm'){ + block.value = (arg*1/100); +} +if (unit == 'km'){ + block.value = (arg*1/100000); +} +if (unit == 'in'){ + block.value = (arg*1/2.54); +} +if (unit == 'ft'){ + block.value = (arg*1/30.48); +} +if (unit == 'yd'){ + block.value = (arg*1/91.44); +} +if (unit == 'mi'){ + block.value = (arg*1/160934.4); +} +if (unit == 'nmi'){ + block.value = (arg*1/185200); +} + + + +//* block:from_m *// +convertBlock('from_m', 'from m', 1000, 'm'); + +//* arg:from_m *// +var arg = logo.parseArg(logo, turtle, conns[1]); +var unit = logo.parseArg(logo, turtle, conns[2]); +if (unit == 'mm'){ + block.value = (arg*1/0.001); +} +if (unit == 'cm'){ + block.value = (arg*1/0.01); +} +if (unit == 'm'){ + block.value = (arg*1/1); +} +if (unit == 'km'){ + block.value = (arg*1/1000); +} +if (unit == 'in'){ + block.value = (arg*1/0.0254); +} +if (unit == 'ft'){ + block.value = (arg*1/0.3048); +} +if (unit == 'yd'){ + block.value = (arg*1/0.9144); +} +if (unit == 'mi'){ + block.value = (arg*1/1609.344); +} +if (unit == 'nmi'){ + block.value = (arg*1/1852); +} + + + +//* block:from_km *// +convertBlock('from_km', 'from km', 1000, 'km'); + +//* arg:from_km *// +var arg = logo.parseArg(logo, turtle, conns[1]); +var unit = logo.parseArg(logo, turtle, conns[2]); +if (unit == 'mm'){ + block.value = (arg*1/0.000001); +} +if (unit == 'cm'){ + block.value = (arg*1/0.00001); +} +if (unit == 'm'){ + block.value = (arg*1/0.001); +} +if (unit == 'km'){ + block.value = (arg*1/1); +} +if (unit == 'in'){ + block.value = (arg*1/0.0000254); +} +if (unit == 'ft'){ + block.value = (arg*1/0.0003048); +} +if (unit == 'yd'){ + block.value = (arg*1/0.0009144); +} +if (unit == 'mi'){ + block.value = (arg*1/1.609344); +} +if (unit == 'nmi'){ + block.value = (arg*1/1.852); +} + + + +//* block:from_in *// +convertBlock('from_in', 'from in', 1000, 'in'); + +//* arg:from_in *// +var arg = logo.parseArg(logo, turtle, conns[1]); +var unit = logo.parseArg(logo, turtle, conns[2]); +if (unit == 'mm'){ + block.value = (arg*1/0.039370078740157); +} +if (unit == 'cm'){ + block.value = (arg*1/0.39370078740157); +} +if (unit == 'm'){ + block.value = (arg*1/39.370078740157); +} +if (unit == 'km'){ + block.value = (arg*1/39370.078740157); +} +if (unit == 'in'){ + block.value = (arg*1/1); +} +if (unit == 'ft'){ + block.value = (arg*1/12); +} +if (unit == 'yd'){ + block.value = (arg*1/36); +} +if (unit == 'mi'){ + block.value = (arg*1/63360); +} +if (unit == 'nmi'){ + block.value = (arg*1/72913.385826772); +} + + + +//* block:from_ft *// +convertBlock('from_ft', 'from ft', 1000, 'ft'); + +//* arg:from_ft *// +var arg = logo.parseArg(logo, turtle, conns[1]); +var unit = logo.parseArg(logo, turtle, conns[2]); +if (unit == 'mm'){ + block.value = (arg*1/0.0032808398950131); +} +if (unit == 'cm'){ + block.value = (arg*1/0.032808398950131); +} +if (unit == 'm'){ + block.value = (arg*1/3.2808398950131); +} +if (unit == 'km'){ + block.value = (arg*1/3280.8398950131 ); +} +if (unit == 'in'){ + block.value = (arg*1/0.083333333333333); +} +if (unit == 'ft'){ + block.value = (arg*1/1); +} +if (unit == 'yd'){ + block.value = (arg*1/3); +} +if (unit == 'mi'){ + block.value = (arg*1/5280); +} +if (unit == 'nmi'){ + block.value = (arg*1/ 6076.1154855643); +} + + + +//* block:from_yd *// +convertBlock('from_yd', 'from yd', 1000, 'yd'); + +//* arg:from_yd *// +var arg = logo.parseArg(logo, turtle, conns[1]); +var unit = logo.parseArg(logo, turtle, conns[2]); +if (unit == 'mm'){ + block.value = (arg*1/0.0010936132983377); +} +if (unit == 'cm'){ + block.value = (arg*1/0.0.010936132983377); +} +if (unit == 'm'){ + block.value = (arg*1/1.0936132983377); +} +if (unit == 'km'){ + block.value = (arg*1/1093.6132983377); +} +if (unit == 'in'){ + block.value = (arg*1/0.027777777777778); +} +if (unit == 'ft'){ + block.value = (arg*1/0.33333333333333); +} +if (unit == 'yd'){ + block.value = (arg*1/1); +} +if (unit == 'mi'){ + block.value = (arg*1/1760); +} +if (unit == 'nmi'){ + block.value = (arg*1/ 2025.3718285214); +} + + + +//* block:from_mi *// +convertBlock('from_mi', 'from mi', 1000, 'mi'); + +//* arg:from_mi *// +var arg = logo.parseArg(logo, turtle, conns[1]); +var unit = logo.parseArg(logo, turtle, conns[2]); +if (unit == 'mm'){ + block.value = (arg*1/0.00000062137119223733); +} +if (unit == 'cm'){ + block.value = (arg*1/0.0000062137119223733); +} +if (unit == 'm'){ + block.value = (arg*1/0.00062137119223733); +} +if (unit == 'km'){ + block.value = (arg*1/0.62137119223733); +} +if (unit == 'in'){ + block.value = (arg*1/0.000015782828282828); +} +if (unit == 'ft'){ + block.value = (arg*1/0.00018939393939394); +} +if (unit == 'yd'){ + block.value = (arg*1/0.00056818181818182); +} +if (unit == 'mi'){ + block.value = (arg*1/1); +} +if (unit == 'nmi'){ + block.value = (arg*1/1.1507794480235); +} + + + +//* block:from_nmi *// +convertBlock('from_nmi', 'from nmi', 1000, 'nmi'); + +//* arg:from_nmi *// +var arg = logo.parseArg(logo, turtle, conns[1]); +var unit = logo.parseArg(logo, turtle, conns[2]); +if (unit == 'mm'){ + block.value = (arg*1/0.00000053995680345572); +} +if (unit == 'cm'){ + block.value = (arg*1/0.0000053995680345572); +} +if (unit == 'm'){ + block.value = (arg*1/0.00053995680345572); +} +if (unit == 'km'){ + block.value = (arg*1/0.53995680345572); +} +if (unit == 'in'){ + block.value = (arg*1/0.000013714902807775); +} +if (unit == 'ft'){ + block.value = (arg*1/0.0001645788336933); +} +if (unit == 'yd'){ + block.value = (arg*1/0.00049373650107991); +} +if (unit == 'mi'){ + block.value = (arg*1/0.86897624190065); +} +if (unit == 'nmi'){ + block.value = (arg*1/1); +} + + +//* palette-icon:converter *// +len + +//* palette-fill:converter *// #ff00ff +//* palette-stroke:converter *// #C700D3 +//* palette-highlight:converter *// #FF9FFF +//* palette-stroke-highlight:converter *// #000000