forked from SteamWar/SteamWar
Fix constructors
This commit is contained in:
+15
-2
@@ -57,10 +57,23 @@ public abstract class MultiTileArea implements Region.Area {
|
||||
}
|
||||
}
|
||||
|
||||
public void addTile(Tile tile) {
|
||||
tiles.add(tile);
|
||||
/**
|
||||
* @return {@code true} if the {@link MultiTileArea} did not already contain the {@link Tile}.
|
||||
*/
|
||||
public boolean addTile(Tile tile) {
|
||||
return tiles.add(tile);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {@code true} if the {@link MultiTileArea} did not already contain any {@link Tile} passed as argument.
|
||||
*/
|
||||
public boolean addTiles(Set<Tile> tiles) {
|
||||
return this.tiles.addAll(tiles);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {@code true} if the {@link MultiTileArea} no longer has any {@link Tile}'s associated with it.
|
||||
*/
|
||||
public boolean removeTile(Tile tile) {
|
||||
tiles.remove(tile);
|
||||
return tiles.isEmpty();
|
||||
|
||||
+5
-5
@@ -25,23 +25,23 @@ import de.steamwar.bausystem.region.dynamic.PasteUtils;
|
||||
import de.steamwar.bausystem.region.dynamic.Tile;
|
||||
import de.steamwar.bausystem.region.dynamic.VariantSelector;
|
||||
import de.steamwar.bausystem.utils.PasteBuilder;
|
||||
import lombok.Getter;
|
||||
import lombok.NonNull;
|
||||
import org.bukkit.Location;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
|
||||
public class AreaTile implements Region.Area {
|
||||
|
||||
private final UUID regionIdentifier;
|
||||
@Getter
|
||||
private final Tile tile;
|
||||
private final Point minPoint;
|
||||
private final Point maxPoint;
|
||||
private final Point copyPoint;
|
||||
private final VariantSelector selector;
|
||||
|
||||
public AreaTile(Tile tile, int tileX, int tileZ, Region region, VariantSelector selector) {
|
||||
regionIdentifier = region.getID();
|
||||
public AreaTile(Tile tile, int tileX, int tileZ, VariantSelector selector) {
|
||||
this.tile = tile;
|
||||
minPoint = Point.fromLocation(tile.getMinLocation()).setY(WORLD_MIN_Y);
|
||||
maxPoint = Point.fromLocation(tile.add(tileX - 1, tileZ - 1).orElseThrow().getMaxLocation()).setY(WORLD_MAX_Y);
|
||||
int x = minPoint.getX() + (maxPoint.getX() - minPoint.getX()) / 2;
|
||||
|
||||
+22
-6
@@ -19,6 +19,8 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.modes.microwargear_7;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.RegionBackups;
|
||||
import de.steamwar.bausystem.region.RegionData;
|
||||
import de.steamwar.bausystem.region.RegionHistory;
|
||||
@@ -32,6 +34,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
@RegionConstructorData(
|
||||
@@ -49,14 +52,27 @@ public class MiWG7DisplayRegion extends DynamicRegion {
|
||||
private static final File DIRECTORY = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "sections/microwargear_7/display");
|
||||
private static final VariantSelector SELECTOR = VariantSelector.Get(DIRECTORY);
|
||||
|
||||
private final Area area;
|
||||
private final AreaTile area;
|
||||
|
||||
public MiWG7DisplayRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
area = new AreaTile(tile, 1, 1, this, SELECTOR);
|
||||
public MiWG7DisplayRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public MiWG7DisplayRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private MiWG7DisplayRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, SELECTOR);
|
||||
regionData = new DisplayRegionData(this);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+21
-5
@@ -19,6 +19,8 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.modes.microwargear_7;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.*;
|
||||
import de.steamwar.bausystem.region.dynamic.*;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.AreaBlock;
|
||||
@@ -33,6 +35,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
@RegionConstructorData(
|
||||
@@ -58,10 +61,19 @@ public class MiWG7PlotRegion extends DynamicRegion {
|
||||
private final RegionHistory history;
|
||||
private final RegionBackups backups;
|
||||
|
||||
public MiWG7PlotRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, this, REGION);
|
||||
public MiWG7PlotRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public MiWG7PlotRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private MiWG7PlotRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, REGION);
|
||||
|
||||
Pair<AreaBlock, AreaBlock> pair = AreaBlock.create(this, 36, new Point(7, 7, 7), new Point(7, 0, 7), new Point(7, 7, 7), AreaBlock.CopyLocation.CENTER, 50);
|
||||
northArea = pair.getKey();
|
||||
@@ -70,7 +82,11 @@ public class MiWG7PlotRegion extends DynamicRegion {
|
||||
regionData = new PlotRegionData(this);
|
||||
history = new RegionHistory.Impl(10);
|
||||
backups = new PlotRegionBackups(this, PlotRegionData::new);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+22
-6
@@ -19,6 +19,8 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.modes.miniwargear;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.RegionBackups;
|
||||
import de.steamwar.bausystem.region.RegionData;
|
||||
import de.steamwar.bausystem.region.RegionHistory;
|
||||
@@ -32,6 +34,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
@RegionConstructorData(
|
||||
@@ -49,14 +52,27 @@ public class MWGDisplayRegion extends DynamicRegion {
|
||||
private static final File DIRECTORY = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "sections/miniwargear/display");
|
||||
private static final VariantSelector SELECTOR = VariantSelector.Get(DIRECTORY);
|
||||
|
||||
private final Area area;
|
||||
private final AreaTile area;
|
||||
|
||||
public MWGDisplayRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, this, SELECTOR);
|
||||
public MWGDisplayRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public MWGDisplayRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private MWGDisplayRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, SELECTOR);
|
||||
regionData = new DisplayRegionData(this);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+23
-7
@@ -19,6 +19,8 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.modes.miniwargear;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.*;
|
||||
import de.steamwar.bausystem.region.dynamic.*;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.AreaBlock;
|
||||
@@ -33,6 +35,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
@RegionConstructorData(
|
||||
@@ -58,19 +61,32 @@ public class MWGPlotRegion extends DynamicRegion {
|
||||
private final RegionHistory history;
|
||||
private final RegionBackups backups;
|
||||
|
||||
public MWGPlotRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
history = new RegionHistory.Impl(10);
|
||||
backups = new PlotRegionBackups(this, PlotRegionData::new);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, this, REGION);
|
||||
public MWGPlotRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public MWGPlotRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private MWGPlotRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, REGION);
|
||||
|
||||
Pair<AreaBlock, AreaBlock> pair = AreaBlock.create(this, 36, new Point(37, 26, 22), new Point(7, 0, 7), new Point(7, 7, 7), AreaBlock.CopyLocation.CENTER, 50);
|
||||
northArea = pair.getKey();
|
||||
southArea = pair.getValue();
|
||||
|
||||
regionData = new PlotRegionData(this);
|
||||
finishInit();
|
||||
history = new RegionHistory.Impl(10);
|
||||
backups = new PlotRegionBackups(this, PlotRegionData::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+22
-6
@@ -19,6 +19,8 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.modes.wargear_45;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.RegionBackups;
|
||||
import de.steamwar.bausystem.region.RegionData;
|
||||
import de.steamwar.bausystem.region.RegionHistory;
|
||||
@@ -32,6 +34,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
@RegionConstructorData(
|
||||
@@ -49,14 +52,27 @@ public class WG45DisplayRegion extends DynamicRegion {
|
||||
private static final File DIRECTORY = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "sections/wargear_45/display");
|
||||
private static final VariantSelector SELECTOR = VariantSelector.Get(DIRECTORY);
|
||||
|
||||
private final Area area;
|
||||
private final AreaTile area;
|
||||
|
||||
public WG45DisplayRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, this, SELECTOR);
|
||||
public WG45DisplayRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public WG45DisplayRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private WG45DisplayRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, SELECTOR);
|
||||
regionData = new DisplayRegionData(this);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+21
-7
@@ -19,14 +19,14 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.modes.wargear_45;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.*;
|
||||
import de.steamwar.bausystem.region.dynamic.*;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.AreaBlock;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.AreaTile;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.PlotRegionBackups;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.PlotRegionData;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.miniwargear.MWGUtils;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.warship_230.WS230Utils;
|
||||
import de.steamwar.bausystem.region.flags.Flag;
|
||||
import de.steamwar.bausystem.shared.Pair;
|
||||
import de.steamwar.sql.GameModeConfig;
|
||||
@@ -35,6 +35,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
@RegionConstructorData(
|
||||
@@ -60,10 +61,19 @@ public class WG45PlotRegion extends DynamicRegion {
|
||||
private final RegionHistory history;
|
||||
private final RegionBackups backups;
|
||||
|
||||
public WG45PlotRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, this, REGION);
|
||||
public WG45PlotRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public WG45PlotRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private WG45PlotRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, REGION);
|
||||
|
||||
Pair<AreaBlock, AreaBlock> pair = AreaBlock.create(this, 36, new Point(67, 41, 47), new Point(16, 0, 16), new Point(16, 16, 16), AreaBlock.CopyLocation.CENTER, 50);
|
||||
northArea = pair.getKey();
|
||||
@@ -72,7 +82,11 @@ public class WG45PlotRegion extends DynamicRegion {
|
||||
regionData = new PlotRegionData(this);
|
||||
history = new RegionHistory.Impl(10);
|
||||
backups = new PlotRegionBackups(this, PlotRegionData::new);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+22
-6
@@ -19,6 +19,8 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.modes.warship_175;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.RegionBackups;
|
||||
import de.steamwar.bausystem.region.RegionData;
|
||||
import de.steamwar.bausystem.region.RegionHistory;
|
||||
@@ -32,6 +34,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
@RegionConstructorData(
|
||||
@@ -49,14 +52,27 @@ public class WS175DisplayRegion extends DynamicRegion {
|
||||
private static final File DIRECTORY = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "sections/warship_175/display");
|
||||
private static final VariantSelector SELECTOR = VariantSelector.Get(DIRECTORY);
|
||||
|
||||
private final Area area;
|
||||
private final AreaTile area;
|
||||
|
||||
public WS175DisplayRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, this, SELECTOR);
|
||||
public WS175DisplayRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public WS175DisplayRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private WS175DisplayRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, SELECTOR);
|
||||
regionData = new DisplayRegionData(this);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+21
-5
@@ -19,6 +19,8 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.modes.warship_175;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.*;
|
||||
import de.steamwar.bausystem.region.dynamic.*;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.AreaBlock;
|
||||
@@ -33,6 +35,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
@RegionConstructorData(
|
||||
@@ -58,10 +61,19 @@ public class WS175PlotRegion extends DynamicRegion {
|
||||
private final RegionHistory history;
|
||||
private final RegionBackups backups;
|
||||
|
||||
public WS175PlotRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, this, REGION);
|
||||
public WS175PlotRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public WS175PlotRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private WS175PlotRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, REGION);
|
||||
|
||||
Pair<AreaBlock, AreaBlock> pair = AreaBlock.create(this, 25, new Point(175, 58, 39), new Point(12, 0, 8), new Point(12, 0, 8), AreaBlock.CopyLocation.SIDE, 132);
|
||||
northArea = pair.getKey();
|
||||
@@ -70,7 +82,11 @@ public class WS175PlotRegion extends DynamicRegion {
|
||||
regionData = new PlotRegionData(this);
|
||||
history = new RegionHistory.Impl(10);
|
||||
backups = new PlotRegionBackups(this, PlotRegionData::new);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+22
-6
@@ -19,6 +19,8 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.modes.warship_230;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.RegionBackups;
|
||||
import de.steamwar.bausystem.region.RegionData;
|
||||
import de.steamwar.bausystem.region.RegionHistory;
|
||||
@@ -32,6 +34,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
@RegionConstructorData(
|
||||
@@ -49,14 +52,27 @@ public class WS230DisplayRegion extends DynamicRegion {
|
||||
private static final File DIRECTORY = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "sections/warship_230/display");
|
||||
private static final VariantSelector SELECTOR = VariantSelector.Get(DIRECTORY);
|
||||
|
||||
private final Area area;
|
||||
private final AreaTile area;
|
||||
|
||||
public WS230DisplayRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, this, SELECTOR);
|
||||
public WS230DisplayRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public WS230DisplayRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private WS230DisplayRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, SELECTOR);
|
||||
regionData = new DisplayRegionData(this);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+21
-5
@@ -19,6 +19,8 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.modes.warship_230;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.*;
|
||||
import de.steamwar.bausystem.region.dynamic.*;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.AreaBlock;
|
||||
@@ -33,6 +35,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
@RegionConstructorData(
|
||||
@@ -58,10 +61,19 @@ public class WS230PlotRegion extends DynamicRegion {
|
||||
private final RegionHistory history;
|
||||
private final RegionBackups backups;
|
||||
|
||||
public WS230PlotRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, this, REGION);
|
||||
public WS230PlotRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public WS230PlotRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private WS230PlotRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new AreaTile(tile, TILE_X, TILE_Z, REGION);
|
||||
|
||||
Pair<AreaBlock, AreaBlock> pair = AreaBlock.create(this, 25, new Point(230, 58, 43), new Point(12, 0, 8), new Point(12, 0, 8), AreaBlock.CopyLocation.SIDE, 136);
|
||||
northArea = pair.getKey();
|
||||
@@ -70,7 +82,11 @@ public class WS230PlotRegion extends DynamicRegion {
|
||||
regionData = new PlotRegionData(this);
|
||||
history = new RegionHistory.Impl(10);
|
||||
backups = new PlotRegionBackups(this, PlotRegionData::new);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-2
@@ -57,8 +57,9 @@ public class PathRegion extends DynamicRegion {
|
||||
}
|
||||
|
||||
public void add(Tile tile) {
|
||||
area.addTile(tile);
|
||||
save();
|
||||
if (area.addTile(tile)) {
|
||||
save();
|
||||
}
|
||||
}
|
||||
|
||||
public void update(Tile toUpdate, NeighbourDirection toDirection) {
|
||||
|
||||
+3
-2
@@ -28,6 +28,7 @@ import de.steamwar.bausystem.region.dynamic.PasteUtils;
|
||||
import de.steamwar.bausystem.region.dynamic.Tile;
|
||||
import de.steamwar.bausystem.region.dynamic.VariantSelector;
|
||||
import de.steamwar.bausystem.utils.PasteBuilder;
|
||||
import lombok.Getter;
|
||||
import lombok.NonNull;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
@@ -43,7 +44,8 @@ public class SpecialArea implements Region.Area {
|
||||
public static final File SPECIAL_PATH_DIR = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "sections/special");
|
||||
|
||||
private final DynamicRegion region;
|
||||
private final UUID regionIdentifier;
|
||||
|
||||
@Getter
|
||||
private final Tile tile;
|
||||
private final Point minPoint;
|
||||
private final Point maxPoint;
|
||||
@@ -52,7 +54,6 @@ public class SpecialArea implements Region.Area {
|
||||
|
||||
public SpecialArea(Tile tile, DynamicRegion region, VariantSelector resetFiles) {
|
||||
this.region = region;
|
||||
this.regionIdentifier = region.getID();
|
||||
this.tile = tile;
|
||||
|
||||
minPoint = Point.fromLocation(tile.getMinLocation()).setY(WORLD_MIN_Y);
|
||||
|
||||
+22
-4
@@ -19,11 +19,15 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.special.dry;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.RegionBackups;
|
||||
import de.steamwar.bausystem.region.RegionData;
|
||||
import de.steamwar.bausystem.region.RegionHistory;
|
||||
import de.steamwar.bausystem.region.RegionType;
|
||||
import de.steamwar.bausystem.region.dynamic.*;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.AreaTile;
|
||||
import de.steamwar.bausystem.region.dynamic.modes.DisplayRegionData;
|
||||
import de.steamwar.bausystem.region.dynamic.special.SpecialArea;
|
||||
import de.steamwar.bausystem.region.dynamic.special.SpecialRegionData;
|
||||
import de.steamwar.sql.GameModeConfig;
|
||||
@@ -31,6 +35,7 @@ import lombok.NonNull;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
import static de.steamwar.bausystem.region.dynamic.special.SpecialArea.SPECIAL_PATH_DIR;
|
||||
@@ -48,12 +53,25 @@ public class DryRegion extends DynamicRegion {
|
||||
|
||||
private final SpecialArea area;
|
||||
|
||||
public DryRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
public DryRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public DryRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private DryRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new SpecialArea(tile, this, DRY);
|
||||
regionData = new SpecialRegionData(this);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+21
-4
@@ -19,17 +19,21 @@
|
||||
|
||||
package de.steamwar.bausystem.region.dynamic.special.wet;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import de.steamwar.bausystem.region.RegionBackups;
|
||||
import de.steamwar.bausystem.region.RegionData;
|
||||
import de.steamwar.bausystem.region.RegionHistory;
|
||||
import de.steamwar.bausystem.region.RegionType;
|
||||
import de.steamwar.bausystem.region.dynamic.*;
|
||||
import de.steamwar.bausystem.region.dynamic.special.SpecialArea;
|
||||
import de.steamwar.bausystem.region.dynamic.special.SpecialRegionData;
|
||||
import de.steamwar.sql.GameModeConfig;
|
||||
import lombok.NonNull;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
import static de.steamwar.bausystem.region.dynamic.special.SpecialArea.SPECIAL_PATH_DIR;
|
||||
@@ -47,12 +51,25 @@ public class WetRegion extends DynamicRegion {
|
||||
|
||||
private final SpecialArea area;
|
||||
|
||||
public WetRegion(UUID id, int minX, int minZ) {
|
||||
super(id, minX, minZ);
|
||||
Tile tile = Tile.fromXZ(minX, minZ).orElseThrow();
|
||||
public WetRegion(Tile tile) {
|
||||
this(UUID.randomUUID(), tile);
|
||||
finishCreate();
|
||||
}
|
||||
|
||||
public WetRegion(UUID id, JsonArray tileData) {
|
||||
this(id, readTile(tileData));
|
||||
finishLoad();
|
||||
}
|
||||
|
||||
private WetRegion(UUID id, Tile tile) {
|
||||
super(id, null);
|
||||
area = new SpecialArea(tile, this, WET);
|
||||
regionData = new WetRegionData(this);
|
||||
finishInit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeData(JsonWriter writer) throws IOException {
|
||||
writeTile(writer, area.getTile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user