This commit is contained in:
Bram Verhulst
2024-07-04 14:42:38 +02:00
commit 67af73c6b5
60 changed files with 13407 additions and 0 deletions

50
README.md Normal file
View File

@@ -0,0 +1,50 @@
# 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