forked from SteamWar/SteamWar
Update Region.Area
This commit is contained in:
+2
-2
@@ -63,11 +63,11 @@ public class ColorCommand extends SWCommand {
|
|||||||
}
|
}
|
||||||
region.getRegionData().set(Flag.COLOR, color);
|
region.getRegionData().set(Flag.COLOR, color);
|
||||||
try {
|
try {
|
||||||
PasteBuilder pasteBuilder = new PasteBuilder(PasteBuilder.ClipboardProvider.EMPTY)
|
PasteBuilder pasteBuilder = new PasteBuilder()
|
||||||
.ignoreAir(true)
|
.ignoreAir(true)
|
||||||
.onlyColors(true)
|
.onlyColors(true)
|
||||||
.color(color);
|
.color(color);
|
||||||
region.getArea().reset(p.getLocation(), pasteBuilder, false);
|
region.getArea().reset(pasteBuilder, false);
|
||||||
RegionUtils.message(region, "REGION_REGION_COLORED");
|
RegionUtils.message(region, "REGION_REGION_COLORED");
|
||||||
RegionUtils.message(region, "REGION_REGION_COLORED_FAILED");
|
RegionUtils.message(region, "REGION_REGION_COLORED_FAILED");
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
|
|||||||
+2
-2
@@ -49,9 +49,9 @@ public class ResetCommand extends SWCommand {
|
|||||||
Region region = regionCheck(p);
|
Region region = regionCheck(p);
|
||||||
if (region == null) return;
|
if (region == null) return;
|
||||||
try {
|
try {
|
||||||
PasteBuilder pasteBuilder = new PasteBuilder(PasteBuilder.ClipboardProvider.EMPTY)
|
PasteBuilder pasteBuilder = new PasteBuilder()
|
||||||
.color(region.getRegionData().get(Flag.COLOR).getWithDefault());
|
.color(region.getRegionData().get(Flag.COLOR).getWithDefault());
|
||||||
region.getArea().reset(p.getLocation(), pasteBuilder, false);
|
region.getArea().reset(pasteBuilder, false);
|
||||||
region.getRegionData().clear();
|
region.getRegionData().clear();
|
||||||
RegionUtils.message(region, "REGION_RESET_RESETED");
|
RegionUtils.message(region, "REGION_RESET_RESETED");
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
|
|||||||
+1
-1
@@ -116,7 +116,7 @@ public class TestblockCommand extends SWCommand {
|
|||||||
.removeTNT(removeTNT)
|
.removeTNT(removeTNT)
|
||||||
.removeWater(removeWater)
|
.removeWater(removeWater)
|
||||||
.color(region.getRegionData().get(Flag.COLOR).getWithDefault());
|
.color(region.getRegionData().get(Flag.COLOR).getWithDefault());
|
||||||
region.getTestblockArea().reset(p.getLocation(), pasteBuilder, regionExtensionType == RegionExtensionType.EXTENSION);
|
region.getTestblockArea().reset(pasteBuilder, regionExtensionType == RegionExtensionType.EXTENSION);
|
||||||
RegionUtils.message(region, "REGION_TB_DONE");
|
RegionUtils.message(region, "REGION_TB_DONE");
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
BauSystem.MESSAGE.send("REGION_TB_ERROR", p);
|
BauSystem.MESSAGE.send("REGION_TB_ERROR", p);
|
||||||
|
|||||||
+1
-1
@@ -38,7 +38,7 @@ public class StabFinalizer extends StabStep {
|
|||||||
if (data.region.getRegionData().has(Flag.COLOR).isReadable()) {
|
if (data.region.getRegionData().has(Flag.COLOR).isReadable()) {
|
||||||
pasteBuilder.color(data.region.getRegionData().get(Flag.COLOR).getWithDefault());
|
pasteBuilder.color(data.region.getRegionData().get(Flag.COLOR).getWithDefault());
|
||||||
}
|
}
|
||||||
data.region.getTestblockArea().reset(null, pasteBuilder, true);
|
data.region.getTestblockArea().reset(pasteBuilder, true);
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
stop();
|
stop();
|
||||||
throw e;
|
throw e;
|
||||||
|
|||||||
+1
-1
@@ -77,7 +77,7 @@ public class StabGenerator extends StabStep implements Listener {
|
|||||||
if (data.region.getRegionData().has(Flag.COLOR).isReadable()) {
|
if (data.region.getRegionData().has(Flag.COLOR).isReadable()) {
|
||||||
pasteBuilder.color(data.region.getRegionData().get(Flag.COLOR).getWithDefault());
|
pasteBuilder.color(data.region.getRegionData().get(Flag.COLOR).getWithDefault());
|
||||||
}
|
}
|
||||||
data.region.getTestblockArea().reset(null, pasteBuilder, true);
|
data.region.getTestblockArea().reset(pasteBuilder, true);
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
stop();
|
stop();
|
||||||
throw e;
|
throw e;
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ public interface Region extends RegionDataStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void place(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -159,11 +159,11 @@ public interface Region extends RegionDataStore {
|
|||||||
return FlatteningWrapper.impl.copy(getMinPoint(extension), getMaxPoint(extension), getCopyPoint());
|
return FlatteningWrapper.impl.copy(getMinPoint(extension), getMaxPoint(extension), getCopyPoint());
|
||||||
}
|
}
|
||||||
|
|
||||||
default void reset(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
default void reset(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
place(location, pasteBuilder, extension);
|
place(pasteBuilder, extension);
|
||||||
}
|
}
|
||||||
|
|
||||||
void place(Location location, PasteBuilder pasteBuilder, boolean extension);
|
void place(PasteBuilder pasteBuilder, boolean extension);
|
||||||
|
|
||||||
default void forEachChunk(BiConsumer<Integer, Integer> executor) {
|
default void forEachChunk(BiConsumer<Integer, Integer> executor) {
|
||||||
Point minPoint = getMinPoint(false);
|
Point minPoint = getMinPoint(false);
|
||||||
|
|||||||
+2
-2
@@ -44,10 +44,10 @@ public class WireframeCommand extends SWCommand {
|
|||||||
if (region == null) return;
|
if (region == null) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
PasteBuilder pasteBuilder = new PasteBuilder(PasteBuilder.ClipboardProvider.EMPTY)
|
PasteBuilder pasteBuilder = new PasteBuilder()
|
||||||
.ignoreAir(true)
|
.ignoreAir(true)
|
||||||
.color(region.getRegionData().get(Flag.COLOR).getWithDefault());
|
.color(region.getRegionData().get(Flag.COLOR).getWithDefault());
|
||||||
region.getBuildArea().reset(p.getLocation(), pasteBuilder, false);
|
region.getBuildArea().reset(pasteBuilder, false);
|
||||||
RegionUtils.message(region, "REGION_TB_DONE");
|
RegionUtils.message(region, "REGION_TB_DONE");
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
BauSystem.MESSAGE.send("REGION_TB_ERROR", p);
|
BauSystem.MESSAGE.send("REGION_TB_ERROR", p);
|
||||||
|
|||||||
-22
@@ -23,9 +23,7 @@ import de.steamwar.bausystem.BauSystem;
|
|||||||
import de.steamwar.bausystem.features.region.WireframeCommand;
|
import de.steamwar.bausystem.features.region.WireframeCommand;
|
||||||
import de.steamwar.bausystem.region.dynamic.*;
|
import de.steamwar.bausystem.region.dynamic.*;
|
||||||
import de.steamwar.bausystem.region.dynamic.global.GlobalRegion;
|
import de.steamwar.bausystem.region.dynamic.global.GlobalRegion;
|
||||||
import de.steamwar.bausystem.region.dynamic.path.PathRegion;
|
|
||||||
import de.steamwar.bausystem.shared.Pair;
|
import de.steamwar.bausystem.shared.Pair;
|
||||||
import de.steamwar.bausystem.utils.PasteBuilder;
|
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@@ -33,7 +31,6 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
@@ -91,25 +88,6 @@ public class DynamicRegionSystem implements RegionSystem {
|
|||||||
.collect(Collectors.toUnmodifiableMap(entry -> entry.getValue().identifier(), Map.Entry::getKey));
|
.collect(Collectors.toUnmodifiableMap(entry -> entry.getValue().identifier(), Map.Entry::getKey));
|
||||||
|
|
||||||
DynamicRegionRepository.loadRegions();
|
DynamicRegionRepository.loadRegions();
|
||||||
// [STDOUT] PATH 239
|
|
||||||
// [STDOUT] DRY 4
|
|
||||||
// [STDOUT] DRY_SPECIAL 18
|
|
||||||
// [STDOUT] WET 2
|
|
||||||
// [STDOUT] WET_SPECIAL 9
|
|
||||||
regionTypeMap.forEach((type, regions) -> {
|
|
||||||
if (type != RegionType.PATH) return;
|
|
||||||
|
|
||||||
MultiTileArea multiTileArea = new MultiTileArea() {
|
|
||||||
@Override
|
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
|
||||||
}
|
|
||||||
};
|
|
||||||
for (Region region : regions) {
|
|
||||||
PathRegion pathRegion = (PathRegion) region;
|
|
||||||
multiTileArea.addTile(pathRegion.getTile());
|
|
||||||
}
|
|
||||||
multiTileArea.quantize();
|
|
||||||
});
|
|
||||||
new DynamicRegionCommand();
|
new DynamicRegionCommand();
|
||||||
new WireframeCommand();
|
new WireframeCommand();
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -312,7 +312,7 @@ public class DynamicRegionVisualizer implements SWPlayer.Component, Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
dynamicRegion.getArea().place(sourceTile.getCenterLocation(), new PasteBuilder(), false);
|
dynamicRegion.getArea().place(new PasteBuilder(), false);
|
||||||
dynamicRegion.updateNeighbours();
|
dynamicRegion.updateNeighbours();
|
||||||
|
|
||||||
placement = null;
|
placement = null;
|
||||||
|
|||||||
+1
-1
@@ -73,7 +73,7 @@ public abstract class DynamicRegion implements Region {
|
|||||||
// Updating world state for all neighbouring PathRegions
|
// Updating world state for all neighbouring PathRegions
|
||||||
list.forEach(data -> {
|
list.forEach(data -> {
|
||||||
if (needsFullReset.contains(data.getKey().getID())) {
|
if (needsFullReset.contains(data.getKey().getID())) {
|
||||||
data.getKey().getArea().reset(null,null, false); // TODO: Implement!
|
data.getKey().getArea().reset(null, false); // TODO: Implement!
|
||||||
} else {
|
} else {
|
||||||
data.getKey().update(this, data.getValue().opposite());
|
data.getKey().update(this, data.getValue().opposite());
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -68,7 +68,7 @@ public class GlobalRegion implements Region {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void place(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+1
-1
@@ -160,7 +160,7 @@ public class AreaBlock implements Region.Area {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void place(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
EditSession editSession = pasteBuilder
|
EditSession editSession = pasteBuilder
|
||||||
.with(PasteBuilder.ClipboardProvider.file(selector.select(region.getID(), 0).orElse(null)))
|
.with(PasteBuilder.ClipboardProvider.file(selector.select(region.getID(), 0).orElse(null)))
|
||||||
.pastePoint(copyPoint)
|
.pastePoint(copyPoint)
|
||||||
|
|||||||
+1
-1
@@ -66,7 +66,7 @@ public class AreaTile implements Region.Area {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void place(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
File resetFile = selector.select(regionIdentifier, 0).orElse(null);
|
File resetFile = selector.select(regionIdentifier, 0).orElse(null);
|
||||||
if (resetFile != null) PasteUtils.paste(resetFile, minPoint, 0);
|
if (resetFile != null) PasteUtils.paste(resetFile, minPoint, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -214,7 +214,7 @@ public class PathArea implements Region.Area {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void place(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
if (region.isGarden()) {
|
if (region.isGarden()) {
|
||||||
File resetFile = GARDEN.select(regionIdentifier, 0).orElse(null);
|
File resetFile = GARDEN.select(regionIdentifier, 0).orElse(null);
|
||||||
if (resetFile != null) {
|
if (resetFile != null) {
|
||||||
|
|||||||
+3
-3
@@ -80,7 +80,7 @@ public class SpecialArea implements Region.Area {
|
|||||||
private boolean resetting = false;
|
private boolean resetting = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reset(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void reset(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
if (resetting) return;
|
if (resetting) return;
|
||||||
AtomicBoolean hasResetting = new AtomicBoolean(false);
|
AtomicBoolean hasResetting = new AtomicBoolean(false);
|
||||||
List<Region> regions = DynamicRegionSystem.INSTANCE.getConnectedRegions(region)
|
List<Region> regions = DynamicRegionSystem.INSTANCE.getConnectedRegions(region)
|
||||||
@@ -98,13 +98,13 @@ public class SpecialArea implements Region.Area {
|
|||||||
final int offset = i / 10;
|
final int offset = i / 10;
|
||||||
final Region region = regions.get(i);
|
final Region region = regions.get(i);
|
||||||
Bukkit.getScheduler().runTaskLater(BauSystem.getInstance(), () -> {
|
Bukkit.getScheduler().runTaskLater(BauSystem.getInstance(), () -> {
|
||||||
region.getArea().place(null, null, false); // TODO: Fix this!
|
region.getArea().place(null, false); // TODO: Fix this!
|
||||||
}, offset);
|
}, offset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void place(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
File resetFile = resetFiles.select(regionIdentifier, 0).orElse(null);
|
File resetFile = resetFiles.select(regionIdentifier, 0).orElse(null);
|
||||||
if (resetFile != null) PasteUtils.paste(resetFile, minPoint, 0);
|
if (resetFile != null) PasteUtils.paste(resetFile, minPoint, 0);
|
||||||
resetting = false;
|
resetting = false;
|
||||||
|
|||||||
+1
-1
@@ -74,7 +74,7 @@ public final class FixedGlobalRegion implements Region {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void place(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+3
-3
@@ -176,7 +176,7 @@ public class FixedRegion implements Region {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void place(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
pasteBuilder.with(PasteBuilder.ClipboardProvider.file(prototype.getSkinMap().get(skin).getSchematicFile()))
|
pasteBuilder.with(PasteBuilder.ClipboardProvider.file(prototype.getSkinMap().get(skin).getSchematicFile()))
|
||||||
.reset(extension)
|
.reset(extension)
|
||||||
.minPoint(getMinPoint(extension))
|
.minPoint(getMinPoint(extension))
|
||||||
@@ -224,7 +224,7 @@ public class FixedRegion implements Region {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void place(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
pasteBuilder.with(PasteBuilder.ClipboardProvider.file(prototype.getSkinMap().get(skin).getBuildSchematicFile()))
|
pasteBuilder.with(PasteBuilder.ClipboardProvider.file(prototype.getSkinMap().get(skin).getBuildSchematicFile()))
|
||||||
.reset(extension)
|
.reset(extension)
|
||||||
.minPoint(getMinPoint(extension))
|
.minPoint(getMinPoint(extension))
|
||||||
@@ -273,7 +273,7 @@ public class FixedRegion implements Region {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void place(Location location, PasteBuilder pasteBuilder, boolean extension) {
|
public void place(PasteBuilder pasteBuilder, boolean extension) {
|
||||||
pasteBuilder.with(PasteBuilder.ClipboardProvider.file(prototype.getSkinMap().get(skin).getTestblockSchematicFile()))
|
pasteBuilder.with(PasteBuilder.ClipboardProvider.file(prototype.getSkinMap().get(skin).getTestblockSchematicFile()))
|
||||||
.reset(extension)
|
.reset(extension)
|
||||||
.minPoint(getMinPoint(extension))
|
.minPoint(getMinPoint(extension))
|
||||||
|
|||||||
Reference in New Issue
Block a user