Fix plot offset for regenallroads

This commit is contained in:
boy0001 2015-08-19 04:51:14 +10:00
parent afbf07826a
commit be6705241c
3 changed files with 13 additions and 11 deletions

View File

@ -244,8 +244,8 @@ public abstract class HybridUtils {
public abstract int get_ey(final String world, final int sx, final int ex, final int sz, final int ez, final int sy); public abstract int get_ey(final String world, final int sx, final int ex, final int sz, final int ez, final int sy);
public boolean regenerateRoad(final String world, final ChunkLoc chunk, int extend) { public boolean regenerateRoad(final String world, final ChunkLoc chunk, int extend) {
final int x = chunk.x << 4; int x = chunk.x << 4;
final int z = chunk.z << 4; int z = chunk.z << 4;
final int ex = x + 15; final int ex = x + 15;
final int ez = z + 15; final int ez = z + 15;
final HybridPlotWorld plotworld = (HybridPlotWorld) PS.get().getPlotWorld(world); final HybridPlotWorld plotworld = (HybridPlotWorld) PS.get().getPlotWorld(world);
@ -267,6 +267,8 @@ public abstract class HybridUtils {
final PlotManager manager = PS.get().getPlotManager(world); final PlotManager manager = PS.get().getPlotManager(world);
final PlotId id1 = manager.getPlotId(plotworld, x, 0, z); final PlotId id1 = manager.getPlotId(plotworld, x, 0, z);
final PlotId id2 = manager.getPlotId(plotworld, ex, 0, ez); final PlotId id2 = manager.getPlotId(plotworld, ex, 0, ez);
x -= plotworld.ROAD_OFFSET_X;
z -= plotworld.ROAD_OFFSET_Z;
if ((id1 == null) || (id2 == null) || (id1 != id2)) { if ((id1 == null) || (id2 == null) || (id1 != id2)) {
final boolean result = ChunkManager.manager.loadChunk(world, chunk, false); final boolean result = ChunkManager.manager.loadChunk(world, chunk, false);
if (result) { if (result) {
@ -284,8 +286,8 @@ public abstract class HybridUtils {
} }
final int size = plotworld.SIZE; final int size = plotworld.SIZE;
for (int X = 0; X < 16; X++) { for (int X = 0; X < 16; X++) {
for (int Z = 0; Z < 16; Z++) {
short absX = (short) ((x + X) % size); short absX = (short) ((x + X) % size);
for (int Z = 0; Z < 16; Z++) {
short absZ = (short) ((z + Z) % size); short absZ = (short) ((z + Z) % size);
if (absX < 0) { if (absX < 0) {
absX += size; absX += size;
@ -295,7 +297,7 @@ public abstract class HybridUtils {
} }
boolean condition; boolean condition;
if (toCheck) { if (toCheck) {
condition = manager.getPlotId(plotworld, x + X, 1, z + Z) == null; condition = manager.getPlotId(plotworld, x + X + plotworld.ROAD_OFFSET_X, 1, z + Z + plotworld.ROAD_OFFSET_Z) == null;
// condition = MainUtil.isPlotRoad(new Location(plotworld.worldname, x + X, 1, z + Z)); // condition = MainUtil.isPlotRoad(new Location(plotworld.worldname, x + X, 1, z + Z));
} else { } else {
final boolean gx = absX > plotworld.PATH_WIDTH_LOWER; final boolean gx = absX > plotworld.PATH_WIDTH_LOWER;
@ -309,13 +311,13 @@ public abstract class HybridUtils {
final PlotLoc loc = new PlotLoc(absX, absZ); final PlotLoc loc = new PlotLoc(absX, absZ);
final HashMap<Short, Short> blocks = plotworld.G_SCH.get(loc); final HashMap<Short, Short> blocks = plotworld.G_SCH.get(loc);
for (short y = (short) (plotworld.ROAD_HEIGHT); y <= (plotworld.ROAD_HEIGHT + plotworld.SCHEMATIC_HEIGHT + extend); y++) { for (short y = (short) (plotworld.ROAD_HEIGHT); y <= (plotworld.ROAD_HEIGHT + plotworld.SCHEMATIC_HEIGHT + extend); y++) {
SetBlockQueue.setBlock(world, x + X, y, z + Z, 0); SetBlockQueue.setBlock(world, x + X + plotworld.ROAD_OFFSET_X, y, z + Z + plotworld.ROAD_OFFSET_Z, 0);
} }
if (blocks != null) { if (blocks != null) {
final HashMap<Short, Byte> datas = plotworld.G_SCH_DATA.get(loc); final HashMap<Short, Byte> datas = plotworld.G_SCH_DATA.get(loc);
if (datas == null) { if (datas == null) {
for (final Short y : blocks.keySet()) { for (final Short y : blocks.keySet()) {
SetBlockQueue.setBlock(world, x + X, sy + y, z + Z, blocks.get(y)); SetBlockQueue.setBlock(world, x + X + plotworld.ROAD_OFFSET_X, sy + y, z + Z + plotworld.ROAD_OFFSET_Z, blocks.get(y));
} }
} else { } else {
for (final Short y : blocks.keySet()) { for (final Short y : blocks.keySet()) {
@ -323,7 +325,7 @@ public abstract class HybridUtils {
if (data == null) { if (data == null) {
data = 0; data = 0;
} }
SetBlockQueue.setBlock(world, x + X, sy + y, z + Z, new PlotBlock(blocks.get(y), data)); SetBlockQueue.setBlock(world, x + X + plotworld.ROAD_OFFSET_X, sy + y, z + Z + plotworld.ROAD_OFFSET_Z, new PlotBlock(blocks.get(y), data));
} }
} }
} }

View File

@ -123,7 +123,7 @@ public abstract class SquarePlotManager extends GridPlotManager {
final boolean eastWest = (rx <= pathWidthLower) || (rx > end); final boolean eastWest = (rx <= pathWidthLower) || (rx > end);
if (northSouth && eastWest) { if (northSouth && eastWest) {
// This means you are in the intersection // This means you are in the intersection
final Location loc = new Location(plotworld.worldname, x + dpw.ROAD_WIDTH, 0, z + dpw.ROAD_WIDTH); final Location loc = new Location(plotworld.worldname, x + dpw.ROAD_WIDTH + dpw.ROAD_OFFSET_X, 0, z + dpw.ROAD_WIDTH + dpw.ROAD_OFFSET_Z);
final PlotId id = MainUtil.getPlotAbs(loc); final PlotId id = MainUtil.getPlotAbs(loc);
final Plot plot = PS.get().getPlot(plotworld.worldname, id); final Plot plot = PS.get().getPlot(plotworld.worldname, id);
if (plot == null) { if (plot == null) {
@ -136,7 +136,7 @@ public abstract class SquarePlotManager extends GridPlotManager {
} }
if (northSouth) { if (northSouth) {
// You are on a road running West to East (yeah, I named the var poorly) // You are on a road running West to East (yeah, I named the var poorly)
final Location loc = new Location(plotworld.worldname, x, 0, z + dpw.ROAD_WIDTH); final Location loc = new Location(plotworld.worldname, x + dpw.ROAD_OFFSET_X, 0, z + dpw.ROAD_WIDTH + dpw.ROAD_OFFSET_Z);
final PlotId id = MainUtil.getPlotAbs(loc); final PlotId id = MainUtil.getPlotAbs(loc);
final Plot plot = PS.get().getPlot(plotworld.worldname, id); final Plot plot = PS.get().getPlot(plotworld.worldname, id);
if (plot == null) { if (plot == null) {
@ -149,7 +149,7 @@ public abstract class SquarePlotManager extends GridPlotManager {
} }
if (eastWest) { if (eastWest) {
// This is the road separating an Eastern and Western plot // This is the road separating an Eastern and Western plot
final Location loc = new Location(plotworld.worldname, x + dpw.ROAD_WIDTH, 0, z); final Location loc = new Location(plotworld.worldname, x + dpw.ROAD_WIDTH + dpw.ROAD_OFFSET_X, 0, z + dpw.ROAD_OFFSET_Z);
final PlotId id = MainUtil.getPlotAbs(loc); final PlotId id = MainUtil.getPlotAbs(loc);
final Plot plot = PS.get().getPlot(plotworld.worldname, id); final Plot plot = PS.get().getPlot(plotworld.worldname, id);
if (plot == null) { if (plot == null) {

View File

@ -28,7 +28,7 @@ public class WEManager {
HashSet<RegionWrapper> regions = new HashSet<>(); HashSet<RegionWrapper> regions = new HashSet<>();
UUID uuid = player.getUUID(); UUID uuid = player.getUUID();
for (Plot plot : PS.get().getPlotsInWorld(player.getLocation().getWorld())) { for (Plot plot : PS.get().getPlotsInWorld(player.getLocation().getWorld())) {
if (plot.isBasePlot() && !FlagManager.isPlotFlagTrue(plot, "done")) { if (plot.isBasePlot() && FlagManager.getPlotFlag(plot, "done") == null) {
if (Settings.WE_ALLOW_HELPER ? plot.isAdded(uuid) : (plot.isOwner(uuid) || plot.getTrusted().contains(uuid))) { if (Settings.WE_ALLOW_HELPER ? plot.isAdded(uuid) : (plot.isOwner(uuid) || plot.getTrusted().contains(uuid))) {
Location pos1 = MainUtil.getPlotBottomLoc(plot.world, plot.id).add(1, 0, 1); Location pos1 = MainUtil.getPlotBottomLoc(plot.world, plot.id).add(1, 0, 1);
Location pos2 = MainUtil.getPlotTopLoc(plot.world, plot.id); Location pos2 = MainUtil.getPlotTopLoc(plot.world, plot.id);