Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions docs/build-rush/builds.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ You can also add a custom floor for your build, allowing the structure to be `n`
Players won't have to build this floor, as it will replace the floor of all plots when building. Please make sure that all blocks of the floor have a solid top surface.

!!! tip
Do not worry about falling blocks like sand for you floor, as barrier blocks will be placed under the plot floors if the map does not have blocks there.
Do not worry about falling blocks like sand for your floor, as barrier blocks will be placed under the plot floors if the map does not have blocks there.

!!! example
If you want to create a build of size 7, you can create a structure of dimensions 7x8x7, with the floor being at the bottom of the structure.
Expand Down Expand Up @@ -59,21 +59,21 @@ Here are the configuration fields of a build:
| `author.uuid` | The UUID of the author. | No | |

!!! tip
If a game tries to load any build that is not valid in any way, it will get ignored and a warning will be sent in the console.
If a game tries to load any build that is not valid in any way, it will be ignored and a warning will be sent in the console.

A standalone build will not get used in any gamemode, that's because it is the game config that defines the list of builds that it's going to use.
A standalone build will not be used in any gamemode, that's because it is the game config that defines the list of builds that it's going to use.
However, you can add your build to the `build_rush:generic` tag, which is used by the generic game modes.

## Notes on contributions

If you are contributing to the Build Rush repository, please make sure to follow this checklist before submitting your pull request:
- Your build is replicable in normal gameplay, on any maps. (no floating blocks)
- Your build features as less redstone mechanics as possible.
- Your build features as least redstone mechanics as possible.
- If the name of your build is already used, add an underscore and a number at the end of the name. (`build`, `build_2`, `build_3`, ...)
- Your structure file and your build configuration have the same name.
- The structure is saved under the `structures/builds` folder inside the `build_rush` datapack.
- If the build is not made for specific gamemode, add it to the `build_rush:generic` build tag.
- If the build is not made for a specific gamemode, add it to the `build_rush:generic` build tag.
- The build name is translatable. Use existing translations if possible, if not add a translation key that follows the `build.<name>` pattern.

!!! warning
Currently, the generic game modes of Build Rush were made for build sizes of 5, 7 and 9. Only size 5 is used for now though.
Currently, the generic game modes of Build Rush were made for build sizes of 5, 7 and 9. Only size 5 is used for now though.
2 changes: 1 addition & 1 deletion docs/build-rush/maps.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ The game type is `build_rush:standard`.
The `#build_rush:generic` tag includes most of the available builds.

!!! note
The builds field can contain any builds, even if they are not compatible with the map. Only compatible builds from the entry list will get used.
The builds field can contain any builds, even if they are not compatible with the map. Only compatible builds from the entry list will be used.

## Notes on contributions

Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

Here you can find documentation about Nucleoid's libraries and other tools. Have a look in the navigation bar to find what you are looking for.

If you want to get started making a minigame, you probably want to look at [Plasmid](plasmid/index.md). If you want to contribute translations, [see our Weblate](https://hosted.weblate.org/projects/nucleoid/). You can also come and chat to us [on Discord](https://nucleoid.xyz/discord) in the `#minigame-dev` channel!
If you want to get started making a minigame, you probably want to look at [Plasmid](plasmid/index.md). If you want to contribute translations, [see our Weblate](https://hosted.weblate.org/projects/nucleoid/). You can also come and chat with us [on Discord](https://nucleoid.xyz/discord) in the `#minigame-dev` channel!
4 changes: 2 additions & 2 deletions docs/plasmid/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Let's break down what is going on here:
This naturally will not compile yet: neither `ExampleGame` nor `ExampleGameConfig` exist! Let's get to that.

### Creating our config in code
First we will create our `ExampleGameConfig` class, which will hold a `String` field that will be used as a message to send to the player when they join. Java's new [Records](https://docs.oracle.com/en/java/javase/16/language/records.html) are perfect for configs, but not required!
First, we will create our `ExampleGameConfig` class, which will hold a `String` field that will be used as a message to send to the player when they join. Java's new [Records](https://docs.oracle.com/en/java/javase/16/language/records.html) are perfect for configs, but not required!

```java
public record ExampleGameConfig(String greeting) {
Expand All @@ -56,7 +56,7 @@ That's simple enough! But we're missing the `CODEC` field that we referenced ear

A `Codec` is a very helpful tool implemented by Mojang's [DataFixerUpper](https://github.com/Mojang/DataFixerUpper) library that essentially allows for convenient serialization and deserialization of a Java object to a JSON file. A more detailed explanation of Codecs by Drullkus can be found [here](https://gist.github.com/Drullkus/1bca3f2d7f048b1fe03be97c28f87910), but for simple purposes, all you need to know is the pattern for putting them together.

Essentially, a Codec describes *how an object is serialized and deserialized*. Simply, they can be created from a list of fields and how those fields should be serialized. It goes like this:
Essentially, a Codec describes *how an object is serialized and deserialized*. They can be simply created from a list of fields and how those fields should be serialized. It goes like this:
```java
public record ExampleGameConfig(String greeting) {
public static final Codec<ExampleGameConfig> CODEC = RecordCodecBuilder.create(instance -> {
Expand Down
2 changes: 1 addition & 1 deletion docs/plasmid/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Plasmid is a library and mod that forms the core of Nucleoid, providing a base to build minigames on top of.

!!! quote "From the plasmid README"
Plasmid intends to do all the boring work relating to minigame implementation, to rather allow focus effort on just the game itself.
Plasmid intends to do all the boring work related to minigame implementation, to rather allow focused effort on just the game itself.

!!! warning
Current plasmid documentation is not up-to-date with the latest releases, including plasmid 0.5 for Minecraft 1.17.
Expand Down
6 changes: 3 additions & 3 deletions docs/plasmid/maps.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Creating a Map
Any minigame needs a map for the game to take place within. This may be generated by your code- but most often, you just want to use a map that you built by hand. Plasmid introduces various tools which can be used in order to accomplish this. This page will address specifically the process of building the map and attaching various metadata that may be needed for the game to function through _Map Workspaces_.
Any minigame needs a map for the game to take place within. This may be generated by your code- but most often, you just want to use a map that you built by hand. Plasmid introduces various tools which can be used in order to accomplish this. This page will specifically address the process of building the map and attaching various metadata that may be needed for the game to function through _Map Workspaces_.

**NOTE**: The map tools have been moved to a separate mod called "Nucleoid Creator Tools", you can install those tools [here](https://modrinth.com/mod/nucleoid-creator-tools).

Expand Down Expand Up @@ -27,7 +27,7 @@ When you first enter a workspace, you will notice a box outline formed by partic
- `corner_1` and `corner_2` are the two corners of the axis-aligned bounding box

## Setting the map origin
More often than not, you will not need to change the origin of a map workspace. Essentially, though, the map origin controls the block position that will correspond to (0; 0; 0) once the map is exported. This is useful if you built your map in the wrong place, and want to move it when the game actually starts.
More often than not, you will not need to change the origin of a map workspace. Essentially, though, the map origin controls the block position that will correspond to (0; 0; 0) once the map is exported. This is useful if you built your map in the wrong place, and want to move it when the game starts.

For example, if your map is 10 blocks too high, setting your origin to `(0; 10; 0)` will result in the exported map moving 10 blocks downward.

Expand All @@ -51,7 +51,7 @@ Now, you can run `/map region commit <marker>`. This will add the highlighted re

When selecting a region with the _Add Region_ item, you can additionally change the selection mode by sneaking & right clicking. This cycles through 3 modes:
- offset mode: the highlighted block is the block you are looking at, offset by the side you are looking at it from (like placing a block)
- exact mode: the highlighted block is the exact block your are looking at (like breaking a block)
- exact mode: the highlighted block is the exact block you are looking at (like breaking a block)
- at feet mode: the highlighted block is the block at your feet

### Useful region commands
Expand Down
4 changes: 2 additions & 2 deletions docs/plasmid/statistics.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ You also need to provide a translation for the name of your bundle, with the tra
## Getting some keys
Time to get implementi- Oh, we still need to do something else first :/

Once you have a `GameStatisticsBundle`, the next step is to actually increment some statistics, and this is where the specifics can become different between games, as every game is somewhat unique.
Once you have a `GameStatisticsBundle`, the next step is to increment some statistics, and this is where the specifics can become different between games, as every game is somewhat unique.

!!! note "What are StatisticKeys?"
`StatisticKey`s are a type-safe identifier for a specific statistic, and internally store both an `Identifier`.
Expand Down Expand Up @@ -64,7 +64,7 @@ If you implement custom keys, you need to ensure you provide translations for th
If you think other minigames could use a custom `StatisticKey` you implement, mention it in `#tools-and-libraries` [on Discord](https://nucleoid.xyz/discord) and it might get included in plasmid's `StatisticKeys` class.

## Incrementing statistics
Now for the actually interesting part.
Now for the interesting part.

!!! info "Global and per-player statistics"
Per-player statistics are fairly self-explanatory; they're things like `KILLS` or `QUICKEST_TIME` that apply to a single player.
Expand Down