/CubicChunks3

Primary LanguageJavaMIT LicenseMIT

Cubic Chunks 3

Not yet usable or functional, don't try.

Rewrite of the previous rewrite, targeting NeoForge/MC 1.20.4.

This Minecraft mod extends Minecraft height and depth to be nearly infinite (at least a million blocks).

For the most up-to-date information about this mod and its related mods, as well as the newest downloads, please join us on the Cubic Chunks Discord.

Cubic Chunks (CC) - Links:

Github - Cubic Chunks - 1.20.4 and above
Github - Cubic Chunks - 1.12.2 and lower

Cloning the repository

Note: you need git installed to do the following:

git clone --recursive

You need a git submodule for the project to compile. If you don't yet have the submodule but already cloned the repository:

git submodule update --init --recursive

To get latest version of the submodule:

git submodule update --recursive --remote

.git-blame-ignore-revs

Configure commits to be ignored for git blame:

git config blame.ignoreRevsFile .git-blame-ignore-revs

Running the game

If running with IntelliJ, ensure that io.github.opencubicchunks.[folder name].main is selected, not [folder name].main:

image

Contributing

PR Guidelines

  • All mixin methods and fields must have a cc_ prefix // todo automate this check in gh workflows.
  • If a class is significantly modified with mixins, it must have documentation explaining:
    • The original vanilla behaviour, can mention important fields/methods.
      • If the vanilla class has sufficient javadoc (through parchment), this can be skipped. Our javadoc should link to the parchment javadoc.
    • The goal of all mixins targeting the class.
  • Any merged mixins must have tests associated with them.
    • If a mixin is "untestable" its test class should have a comment explaining why it's untestable.
      • Optionally a to-do (project task? issue?) suggesting integration tests when possible.
    • All non-trivial mixins must have a comment explaining their purpose.
    • Must pass checkstyle.
    • Must build.
    • All tests must pass (no regressions).
    • //todo Investigate code coverage for mixin tests (jacoco? other link maybe it's bad) .
  • Any non-mixin class must have tests associated with it.
    • The tests should reasonably cover all expected usage of the class (its external api).
    • Any method(s) that can be reasonably unit tested must be. (TODO more contributing docs)