From 368ad1646901faec4d7bfa669c684b7c73d5fc84 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 3 Jul 2021 23:02:22 -0500 Subject: [PATCH] Another potential fix for construction --- .../game/node/entity/skill/construction/HouseManager.java | 6 +++++- .../core/game/node/entity/skill/construction/HouseZone.java | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java b/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java index ed39f3893..c343257dd 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java @@ -267,6 +267,9 @@ public final class HouseManager { int diffX = player.getLocation().getX() - r.getBaseLocation().getX(); int diffY = player.getLocation().getY() - r.getBaseLocation().getY(); int diffZ = player.getLocation().getZ() - r.getBaseLocation().getZ(); + RegionManager.getRegionCache().remove(r); + region.flagInactive(); + dungeon.flagInactive(); region = null; dungeon = null; enter(player, buildingMode, false); @@ -378,7 +381,8 @@ public final class HouseManager { Region.load(from, true); RegionChunk defaultChunk = from.getPlanes()[style.getPlane()].getRegionChunk(1, 0); ZoneBorders borders = DynamicRegion.reserveArea(8, 8); - region = new DynamicRegion(-1, borders.getSouthWestX() >> 6, borders.getSouthWestY() >> 6); + //region = DynamicRegion.create(from.getRegionId()); + region = new DynamicRegion(from.getRegionId(), borders.getSouthWestX() >> 6, borders.getSouthWestY() >> 6); region.setBorders(borders); region.setUpdateAllPlanes(true); RegionManager.addRegion(region.getId(), region); diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java b/Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java index 9d578623d..fc630513b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java @@ -3,6 +3,7 @@ package core.game.node.entity.skill.construction; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; +import core.game.world.map.RegionManager; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneRestriction; @@ -70,6 +71,11 @@ public final class HouseZone extends MapZone { if (e instanceof Player) { Player p = (Player) e; HouseManager.leave(p); + if(house.getRegion() == p.getHouseManager().getRegion()){ + house.getRegion().flagActive(); + house.getDungeonRegion().flagActive(); + RegionManager.getRegionCache().remove(house.getRegion()); + } return true; } }