mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-20 07:24:16 +00:00
7f34bb917f8d296165d49f7108157f9c4e0ecc9c
Ported from Iris v4's mantle backpressure. Before each chunk the pregenerator now: - evicts idle tectonic plates and waits while more plates are loaded than the heap-scaled budget allows (pregen.maxResidentTectonicPlates) - pauses between 92% and 82% heap, requesting a GC because a paused pregen allocates too little for the collector to run on its own; if the heap stays full, the JVM's diagnostic GC runs at most once a minute, which also works with -XX:+DisableExplicitGC Both waits give up after pregen.mantleBackpressureTimeoutMs so a stuck heap cannot hang the pregen. Unlike v4, a reclaim starts anywhere above 82% instead of only at 92%, since a pregen waiting at 89% otherwise never triggers one. Outside pregen, the engine service shortens the mantle keep-alive as the heap fills and trims studio worlds once the heap is critical. The mantle itself: - concurrent requests for a plate that is still loading share one load instead of each holding an IO thread - plate retries stop once the mantle is closed or the thread is interrupted, instead of recursing forever - trim(0, 0) evicts plates idle for 500 ms instead of 4 s Model used: Claude Opus 5.5
Iris
The master branch is for the latest version of minecraft.
Support | Documentation | Git
Building
Building Iris is fairly simple, though you will need to setup a few things if your system has never been used for java development.
Consider supporting our development by buying Iris on spigot! We work hard to make Iris the best it can be for everyone.
Preface: if you need help compiling and you are a developer / intend to help out in the community or with development we would love to help you regardless in the discord! however do not come to the discord asking for free copies, or a tutorial on how to compile.
Command Line Builds
- Install Java JDK 21
- Set the JDK installation path to
JAVA_HOMEas an environment variable.- Windows
- Start > Type
envand press Enter - Advanced > Environment Variables
- Under System Variables, click
New... - Variable Name:
JAVA_HOME - Variable Value:
C:\Program Files\Java\jdk-21.0.1(verify this exists after installing java don't just copy the example text)
- Start > Type
- MacOS
- Run
/usr/libexec/java_home -Vand look for Java 21 - Run
sudo nano ~/.zshenv - Add
export JAVA_HOME=$(/usr/libexec/java_home)as a new line - Use
CTRL + X, then PressY, ThenENTER - Quit & Reopen Terminal and verify with
echo $JAVA_HOME. It should print a directory
- Run
- Windows
- Once the project has setup, run
gradlew iris - The Iris jar will be placed in
Iris/build/Iris-XXX-XXX.jarEnjoy! Consider supporting us by buying it on spigot!
IDE Builds (for development)
- Configure ITJ Gradle to use JDK 21 (in settings, search for gradle)
- Add a build line in the build.gradle for your own build task to directly compile Iris into your plugins folder if you prefer.
- Resync the project & run your newly created task (under the development folder in gradle tasks!)
Iris Toolbelt
Everyone needs a tool-belt.
package com.volmit.iris.core.tools;
// Get IrisDataManager from a world
IrisToolbelt.access(anyWorld).getCompound().getData();
// Get Default Engine from world
IrisToolbelt.access(anyWorld).getCompound().getDefaultEngine();
// Get the engine at the given height
IrisToolbelt.access(anyWorld).getCompound().getEngineForHeight(68);
// IS THIS THING ON?
boolean yes=IrisToolbelt.isIrisWorld(world);
// GTFO for worlds (moves players to any other world, just not this one)
IrisToolbelt.evacuate(world);
IrisAccess access=IrisToolbelt.createWorld() // If you like builders...
.name("myWorld") // The world name
.dimension("terrifyinghands")
.seed(69133742) // The world seed
.pregen(PregenTask // Define a pregen job to run
.builder()
.center(new Position2(0,0)) // REGION coords (1 region = 32x32 chunks)
.radius(4) // Radius in REGIONS. Rad of 4 means a 9x9 Region map.
.build())
.create();
Description
World Generation through a new Iris
bukkithacktoberfesthacktoberfest-acceptedhacktoberfest2022irisjavaminecraftpluginspigotworld-generationworldgen
Readme
215 MiB
Languages
Java
99.6%
JavaScript
0.4%