Allow removing hulls and resend their chunks

HullHider#removeHull stops hiding a hull: it shows the entities and REntities
the hull hid and resends its chunks to everybody who could not view it. A hull
is enabled again by adding and initialising it.

Hull#resendChunks only resends chunks the player has loaded. HullHider now
resends the chunks to non-viewers after initialising a hull itself, so
FightHullHider no longer does it.
This commit is contained in:
2026-10-31 15:09:04 +01:00
parent ce2a23f4b8
commit d1fb4ca67e
4 changed files with 82 additions and 10 deletions
@@ -32,7 +32,6 @@ import de.steamwar.fightsystem.states.StateDependentListener;
import de.steamwar.fightsystem.states.StateDependentTask;
import de.steamwar.hullhider.Hull;
import de.steamwar.hullhider.HullHider;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
@@ -68,14 +67,6 @@ public class FightHullHider {
public void initialize(FightTeam team) {
if (!TechHiderWrapper.ENABLED) return;
hullHider.initialize(team);
// Chunks encoded while the hull was filled as hidden contain obfuscated blocks that are visible now, but no block update is generated for them
Hull hull = hullHider.getHull(team);
for (Player player : Bukkit.getOnlinePlayers()) {
if (!hull.isViewer(player)) {
FightSystem.getTechHider().reloadChunks(player, team.getExtendRegion(), Region.EMPTY);
}
}
}
public void fill(FightTeam team, boolean visible) {