This library parses ActiveWorlds object action strings (also known as object scripting) into a machine-friendly data model.
npm install aw-action-parser
import { AWActionParser } from 'aw-action-parser';
const parser = new AWActionParser();
parser.parse('create color blue, sign "hello!"; activate color salmon, rotate -.5 loop nosync');
The parse()
function will then return an object looking like this:
{
create: [ { commandType: 'color', color: { r: 0, g: 0, b: 255 } } ],
activate: [
{ commandType: 'color', color: { r: 111, g: 66, b: 66 } },
{
commandType: 'rotate',
speed: { x: 0, y: -0.5, z: 0 },
loop: true,
sync: false
}
]
}
- Color parsing into RGB values (0-255)
- Duplicate actions and commands squash (e.g. multiple
create
actions or multiplecolor
commands)
- Impossible actions on AW (e.g.
create teleport ...
) are not currently filtered out - Some commands like
media
support only a few parameters teleport
/warp
- Better output format for coordinates, altitudes and direction
Unit tests are essential for this kind of project and you can run them with:
npm test
You can ensure linting is passing properly by running:
npm run lint