51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
# Codefever Typescript level framework
|
|
|
|
This is the readme for the typescript framework for minecraft education
|
|
|
|
# Terminology
|
|
|
|
## Puppeteer
|
|
|
|
Puppeteer is a class that handles all the UI code for displaying messages to the player. It also handles translations. see [Translations](#translations)
|
|
|
|
## MindKeeper
|
|
|
|
This is the system that handles all the world storage, supported types are `boolean`, `number`, `string`
|
|
|
|
> **Important** : all registering of the world variables must be done in the world.afterEvents.worldInitialize event (this event can't send anything to the world (like messages))
|
|
>
|
|
> Here is a example of a definition of the world variable foo
|
|
|
|
```typescript
|
|
world.afterEvents.worldInitialize.subscribe(({ propertyRegistry }) => {
|
|
mindKeeper.registerStore("foo", StoreType.string);
|
|
|
|
mindKeeper.registerToWorld(propertyRegistry);
|
|
});
|
|
```
|
|
|
|
## Level (could be abit convoluted) **WIP**
|
|
|
|
This defines a level in a world, it has 3 callback functions as parameters. These functions should
|
|
|
|
- define the setup logic
|
|
- define the update (loop) logic (Used for actionbar mainly)
|
|
- define the condition to pass the level
|
|
- define the code to be run when the level is completed
|
|
|
|
> There is a a AbstractCondition class included with a BlockCondition. This (convoluted) way you can define a BlockCondition in the function that checks if the level is complete.
|
|
|
|
## Translations
|
|
|
|
Translations work with a resource pack. It's the same as with regular resource packs. The way it works with Pupeteer is to set a message to the screen but add the "%" prefix to the key.
|
|
So `pupeteer.setActionbar("%foo.bar)` will look for the key `foo.bar` in the resource pack and display that message.
|
|
|
|
# Random knowlege
|
|
|
|
bunch of helper scripts for this [here](https://github.com/JaylyDev/ScriptAPI)
|
|
This could be handy [jaylydb](https://github.com/JaylyDev/ScriptAPI/tree/stable/scripts/jaylydb)
|
|
|
|
# Authors
|
|
|
|
- [Bram Verhulst](https://github.com/brammie15) :p
|