Wonderland Engine API
September 17, 2024 ยท View on GitHub
Wonderland Engine API
The bindings between Wonderland Engine's WebAssembly runtime and custom JavaScript or TypeScript components.
Learn more about Wonderland Engine at https://wonderlandengine.com.
๐ก The Wonderland Engine Runtime is compatible on all patch versions of the API, but the major and minor versions are required to match.
Example: You will be able to use Wonderland Editor 1.0.4 with API version 1.0.0 or 1.0.9 for example, but not with API 1.1.0. ๐ก
Usage
Wonderland Engine projects usually come with this package pre-installed.
Install via npm or yarn:
npm i --save @wonderlandengine/api
# or:
yarn add @wonderlandengine/api
To update the API to the latest version use
npm i --save @wonderlandengine/api@latest
Writing a Custom Component
JavaScript
import {Component, Property} from '@wonderlandengine/api';
class Forward extends Component {
static TypeName = 'forward';
static Properties = {
speed: Property.float(1.5)
};
_forward = new Float32Array(3);
update(dt) {
this.object.getForward(this._forward);
this._forward[0] *= this.speed*dt;
this._forward[1] *= this.speed*dt;
this._forward[2] *= this.speed*dt;
this.object.translateLocal(this._forward);
}
}
TypeScript
import {Component} from '@wonderlandengine/api';
import {Component} from '@wonderlandengine/api/decorators.js';
class Forward extends Component {
static TypeName = 'forward';
@property.float(1.5)
speed!: number;
private _forward = new Float32Array(3);
update(dt) {
this.object.getForward(this._forward);
this._forward[0] *= this.speed*dt;
this._forward[1] *= this.speed*dt;
this._forward[2] *= this.speed*dt;
this.object.translateLocal(this._forward);
}
}
For more information, please refer to the JavaScript Quick Start Guide.
For Library Maintainers
To ensure the user of your library can use a range of API versions with your library,
use "peerDependencies" in your package.json:
"peerDependencies": {
"@wonderlandengine/api": ">= 1.0.0 < 2"
},
Which signals that your package works with any API version >= 1.0.0
(choose the lowest version that provides all features you need) until 2.0.0.
Also see the Writing JavaScript Libraries Tutorial.
Contributing
- API code: The
@wonderlandengine/apisource code - End2End tests: User-land testing for the
@wonderlandengine/apipackage
Installation
Make sure to install dependencies first:
npm i
Build
To build the TypeScript code, use one of:
cd api
npm run build
npm run build:watch
End-to-End Test
For information about how to run the end-to-end tests, have a look at the
packages/test-e2e README.md
License
Wonderland Engine API TypeScript and JavaScript code is released under MIT license. The runtime and editor are licensed under the Wonderland Engine EULA.