feat(03-01): wire GravityApplier into RegionTickLoop + plugin (Task 2)

- RegionTickLoop gagne un constructeur 3-args (registry, gravityApplier, errorHandler)
- Ancien constructeur 2-args conservé pour rétrocompat des tests Phase 02
- Tick body appelle gravityApplier.apply(w, registry.currentSnapshot(w)) après refreshFor
- GravityFlipPlugin.start() construit l'applier et l'injecte dans le tickLoop
- Log de démarrage mis à jour: 'gravity inversion active'
This commit is contained in:
2026-04-23 10:32:28 +02:00
parent ef3f398c55
commit f7dcc7d59a
2 changed files with 16 additions and 2 deletions
@@ -6,6 +6,7 @@ import com.hypixel.hytale.server.core.universe.Universe;
import com.hypixel.hytale.server.core.universe.world.World;
import com.hypixel.hytale.server.core.util.Config;
import com.mythlane.gravityflip.config.GravityFlipConfig;
import com.mythlane.gravityflip.physics.GravityApplier;
import com.mythlane.gravityflip.region.RegionRegistry;
import com.mythlane.gravityflip.tick.RegionTickLoop;
@@ -36,6 +37,7 @@ public class GravityFlipPlugin extends JavaPlugin {
private RegionRegistry registry;
private RegionTickLoop tickLoop;
private GravityApplier gravityApplier;
public GravityFlipPlugin(JavaPluginInit init) {
super(init);
@@ -61,7 +63,9 @@ public class GravityFlipPlugin extends JavaPlugin {
super.start();
GravityFlipConfig cfg = configHolder.get();
this.registry = new RegionRegistry(cfg, configHolder);
this.tickLoop = new RegionTickLoop(registry, th ->
this.gravityApplier = new GravityApplier(th ->
getLogger().at(Level.WARNING).withCause(th).log("gravityApply failed"));
this.tickLoop = new RegionTickLoop(registry, gravityApplier, th ->
getLogger().at(Level.WARNING).withCause(th).log("detectTick failed"));
// Lazy world resolution — see setup() comment.
@@ -81,7 +85,7 @@ public class GravityFlipPlugin extends JavaPlugin {
} catch (Throwable ignored) { /* manual shutdown() fallback */ }
getLogger().at(Level.INFO).log(
"Gravity Flip enabled — %d region(s) loaded, detector @100ms",
"Gravity Flip enabled — %d region(s) loaded, detector @100ms, gravity inversion active",
cfg.getRegions().size());
}