Update Region System of BauSystem

This commit is contained in:
2024-12-21 19:30:31 +01:00
parent 8427ae36f2
commit 6822dc796f
73 changed files with 927 additions and 1796 deletions
@@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.regionnew;
package de.steamwar.bausystem.region;
import de.steamwar.bausystem.regionnew.flags.Flag;
import de.steamwar.bausystem.region.flags.Flag;
import java.io.File;
import java.util.HashMap;
@@ -44,12 +44,12 @@ public class FixedFlagStorage implements FlagStorage {
}
@Override
public <T extends Enum<T> & Flag.Value<T>> boolean set(Flag<T> flag, Flag.Value<T> value) {
public <T extends Enum<T> & Flag.Value<T>> boolean set(Flag<T> flag, T value) {
return flagMap.put(flag, value) != value;
}
@Override
public <T extends Enum<T> & Flag.Value<T>> Flag.Value<T> get(Flag<T> flag) {
return (Flag.Value<T>) flagMap.get(flag);
public <T extends Enum<T> & Flag.Value<T>> T get(Flag<T> flag) {
return (T) flagMap.get(flag);
}
}
@@ -17,15 +17,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.regionnew;
package de.steamwar.bausystem.region;
import com.sk89q.worldedit.EditSession;
import de.steamwar.bausystem.regionnew.flags.Flag;
import de.steamwar.sql.SchematicNode;
import de.steamwar.bausystem.region.flags.Flag;
import lombok.NonNull;
import org.bukkit.Location;
import javax.annotation.Nullable;
import java.io.File;
import java.util.Optional;
@@ -35,6 +33,7 @@ public final class FixedGlobalRegion implements Region {
private static final Point MIN_POINT = new Point(Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE);
private static final Point MAX_POINT = new Point(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE);
private final FlagStorage FLAG_STORAGE = FixedFlagStorage.createFromRegion(this); // TODO: Update to either File or Region creation!
private FixedGlobalRegion() {
@@ -47,21 +46,21 @@ public final class FixedGlobalRegion implements Region {
@Override
public <T extends Enum<T> & Flag.Value<T>> RegionFlagPolicy hasFlag(@NonNull Flag<T> flag) {
if (flag.oneOff(Flag.TNT, Flag.FIRE, Flag.FREEZE, Flag.ITEMS)) {
if (flag.oneOf(Flag.TNT, Flag.FIRE, Flag.FREEZE, Flag.ITEMS, Flag.NO_GRAVITY)) {
return RegionFlagPolicy.WRITABLE;
}
return RegionFlagPolicy.NOT_APPLICABLE;
}
@Override
public <T extends Enum<T> & Flag.Value<T>> boolean setFlag(@NonNull Flag<T> flag, Flag.Value<T> value) {
public <T extends Enum<T> & Flag.Value<T>> boolean setFlag(@NonNull Flag<T> flag, T value) {
return hasFlag(flag).isWritable() && FLAG_STORAGE.set(flag, value);
}
@Override
public <T extends Enum<T> & Flag.Value<T>> Optional<Flag.Value<T>> getFlag(@NonNull Flag<T> flag) {
public <T extends Enum<T> & Flag.Value<T>> Optional<T> getFlag(@NonNull Flag<T> flag) {
if (hasFlag(flag).isReadable()) {
return Optional.of(FLAG_STORAGE.get(flag));
return Optional.ofNullable(FLAG_STORAGE.get(flag));
} else {
return Optional.empty();
}
@@ -83,33 +82,13 @@ public final class FixedGlobalRegion implements Region {
}
@Override
public Optional<Point> getBuildMinPoint(boolean extension) {
return Optional.empty();
public Inner getBuildArea() {
return Inner.EMPTY;
}
@Override
public Optional<Point> getBuildMaxPoint(boolean extension) {
return Optional.empty();
}
@Override
public boolean inBuildRegion(Location location, boolean extension) {
return false;
}
@Override
public Optional<Point> getTestblockMinPoint(boolean extension) {
return Optional.empty();
}
@Override
public Optional<Point> getTestblockMaxPoint(boolean extension) {
return Optional.empty();
}
@Override
public boolean inTestblockRegion(Location location, boolean extension) {
return false;
public Inner getTestblockArea() {
return Inner.EMPTY;
}
@Override
@@ -123,13 +102,8 @@ public final class FixedGlobalRegion implements Region {
}
@Override
public Optional<EditSession> copyBuild() {
return Optional.empty();
}
@Override
public Optional<EditSession> copyTestblock() {
return Optional.empty();
public boolean backup(boolean automatic) {
return false;
}
@Override
@@ -137,16 +111,6 @@ public final class FixedGlobalRegion implements Region {
}
@Override
public void resetBuild(@Nullable SchematicNode schematicNode, boolean extension) {
}
@Override
public void resetTestblock(@Nullable SchematicNode schematicNode, boolean extension) {
}
@Override
public void remember(EditSession editSession) {
@@ -17,15 +17,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.regionnew;
package de.steamwar.bausystem.region;
import com.sk89q.worldedit.EditSession;
import de.steamwar.bausystem.regionnew.flags.Flag;
import de.steamwar.sql.SchematicNode;
import de.steamwar.bausystem.region.flags.Flag;
import lombok.NonNull;
import org.bukkit.Location;
import javax.annotation.Nullable;
import java.io.File;
import java.util.Optional;
@@ -42,12 +40,12 @@ public class FixedRegion implements Region { // TODO: Implement!
}
@Override
public <T extends Enum<T> & Flag.Value<T>> boolean setFlag(@NonNull Flag<T> flag, Flag.Value<T> value) {
public <T extends Enum<T> & Flag.Value<T>> boolean setFlag(@NonNull Flag<T> flag, T value) {
return false;
}
@Override
public <T extends Enum<T> & Flag.Value<T>> Optional<Flag.Value<T>> getFlag(@NonNull Flag<T> flag) {
public <T extends Enum<T> & Flag.Value<T>> Optional<T> getFlag(@NonNull Flag<T> flag) {
return Optional.empty();
}
@@ -67,33 +65,13 @@ public class FixedRegion implements Region { // TODO: Implement!
}
@Override
public Optional<Point> getBuildMinPoint(boolean extension) {
return Optional.empty();
public Inner getBuildArea() {
return Inner.EMPTY;
}
@Override
public Optional<Point> getBuildMaxPoint(boolean extension) {
return Optional.empty();
}
@Override
public boolean inBuildRegion(Location location, boolean extension) {
return false;
}
@Override
public Optional<Point> getTestblockMinPoint(boolean extension) {
return Optional.empty();
}
@Override
public Optional<Point> getTestblockMaxPoint(boolean extension) {
return Optional.empty();
}
@Override
public boolean inTestblockRegion(Location location, boolean extension) {
return false;
public Inner getTestblockArea() {
return Inner.EMPTY;
}
@Override
@@ -101,36 +79,21 @@ public class FixedRegion implements Region { // TODO: Implement!
return Optional.empty();
}
@Override
public boolean backup(boolean automatic) {
return false;
}
@Override
public Optional<EditSession> copy() {
return Optional.empty();
}
@Override
public Optional<EditSession> copyBuild() {
return Optional.empty();
}
@Override
public Optional<EditSession> copyTestblock() {
return Optional.empty();
}
@Override
public void reset() {
}
@Override
public void resetBuild(@Nullable SchematicNode schematicNode, boolean extension) {
}
@Override
public void resetTestblock(@Nullable SchematicNode schematicNode, boolean extension) {
}
@Override
public void remember(EditSession editSession) {
@@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.regionnew;
package de.steamwar.bausystem.region;
import org.bukkit.Location;