Compare commits

..

2 Commits

Author SHA1 Message Date
dordsor21
2fff5735a6 Further work 2025-11-30 19:53:20 +00:00
dordsor21
244981afd3 fix: correct height that FAWE ends up using for schematics
- this did not end up having an impact on P2 code as it always used getMinBuildHeight when PASTE_ON_TOP was false anyway
 - there should not be any side effects to this as any uses this specific SCHEM_Y value are effectively normalised against it
2025-11-30 19:53:20 +00:00
7 changed files with 17 additions and 16 deletions

View File

@@ -9,7 +9,7 @@ jobs:
os: [ ubuntu-latest, windows-latest, macos-latest ] os: [ ubuntu-latest, windows-latest, macos-latest ]
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v6 uses: actions/checkout@v5
- name: Validate Gradle Wrapper - name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v5 uses: gradle/actions/wrapper-validation@v5
- name: Setup Java - name: Setup Java

View File

@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v6 uses: actions/checkout@v5
- name: Validate Gradle Wrapper - name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v5 uses: gradle/actions/wrapper-validation@v5
- name: Setup Java - name: Setup Java

View File

@@ -20,7 +20,7 @@ jobs:
language: [ 'java' ] language: [ 'java' ]
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v5
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v5 uses: actions/setup-java@v5
with: with:

View File

@@ -164,6 +164,9 @@ public abstract class ClassicPlotWorld extends SquarePlotWorld {
: getMinBuildHeight(); : getMinBuildHeight();
} }
/**
* Get the lowest height of plot, road, and wall. Accounts for {@link Settings.Schematics#USE_WALL_IN_ROAD_SCHEM_HEIGHT}
*/
int schematicStartHeight() { int schematicStartHeight() {
int plotRoadMin = Math.min(PLOT_HEIGHT, ROAD_HEIGHT); int plotRoadMin = Math.min(PLOT_HEIGHT, ROAD_HEIGHT);
if (!Settings.Schematics.USE_WALL_IN_ROAD_SCHEM_HEIGHT) { if (!Settings.Schematics.USE_WALL_IN_ROAD_SCHEM_HEIGHT) {

View File

@@ -276,7 +276,8 @@ public class HybridPlotWorld extends ClassicPlotWorld {
SCHEM_Y = getMinGenHeight(); SCHEM_Y = getMinGenHeight();
plotY = 0; plotY = 0;
} else if (!Settings.Schematics.PASTE_ON_TOP) { } else if (!Settings.Schematics.PASTE_ON_TOP) {
SCHEM_Y = getMinGenHeight(); // Schematics should generate/be pasted from build height
SCHEM_Y = getMinBuildHeight();
plotY = 0; plotY = 0;
} }
} }
@@ -293,18 +294,14 @@ public class HybridPlotWorld extends ClassicPlotWorld {
roadY = 0; // Road is the lowest schematic roadY = 0; // Road is the lowest schematic
if (schematic3 != null && schematic3.getClipboard().getDimensions().getY() != worldGenHeight) { if (schematic3 != null && schematic3.getClipboard().getDimensions().getY() != worldGenHeight) {
// Road is the lowest schematic. Normalize plotY to it. // Road is the lowest schematic. Normalize plotY to it.
if (Settings.Schematics.PASTE_ON_TOP) { plotY = (Settings.Schematics.PASTE_ON_TOP ? PLOT_HEIGHT : getMinBuildHeight()) - SCHEM_Y;
plotY = PLOT_HEIGHT - getMinGenHeight();
}
} }
} else if (!Settings.Schematics.PASTE_ROAD_ON_TOP) { } else if (!Settings.Schematics.PASTE_ROAD_ON_TOP) {
roadY = 0; roadY = 0;
SCHEM_Y = getMinGenHeight(); SCHEM_Y = getMinGenHeight();
if (schematic3 != null) { if (schematic3 != null && schematic3.getClipboard().getDimensions().getY() != worldGenHeight) {
if (Settings.Schematics.PASTE_ON_TOP) { // Road is the lowest schematic. Normalize plotY to it.
// Road is the lowest schematic. Normalize plotY to it. plotY = (Settings.Schematics.PASTE_ON_TOP ? PLOT_HEIGHT : getMinBuildHeight()) - SCHEM_Y;
plotY = PLOT_HEIGHT - SCHEM_Y;
}
} }
} else { } else {
roadY = minRoadWall - SCHEM_Y; roadY = minRoadWall - SCHEM_Y;

View File

@@ -68,6 +68,7 @@ import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
@@ -529,7 +530,7 @@ public class HybridUtils {
final QueueCoordinator queue = blockQueue.getNewQueue(worldUtil.getWeWorld(world)); final QueueCoordinator queue = blockQueue.getNewQueue(worldUtil.getWeWorld(world));
Location bot = plot.getBottomAbs().subtract(1, 0, 1); Location bot = plot.getBottomAbs().subtract(1, 0, 1);
Location top = plot.getTopAbs(); Location top = plot.getTopAbs();
final HybridPlotWorld plotworld = (HybridPlotWorld) plot.getArea(); final HybridPlotWorld plotworld = Objects.requireNonNull((HybridPlotWorld) plot.getArea());
// Do not use plotworld#schematicStartHeight() here as we want to restore the pre 6.1.4 way of doing it if // Do not use plotworld#schematicStartHeight() here as we want to restore the pre 6.1.4 way of doing it if
// USE_WALL_IN_ROAD_SCHEM_HEIGHT is false // USE_WALL_IN_ROAD_SCHEM_HEIGHT is false
int schemY = Settings.Schematics.USE_WALL_IN_ROAD_SCHEM_HEIGHT ? int schemY = Settings.Schematics.USE_WALL_IN_ROAD_SCHEM_HEIGHT ?

View File

@@ -3,7 +3,7 @@
paper = "1.20.4-R0.1-SNAPSHOT" paper = "1.20.4-R0.1-SNAPSHOT"
guice = "7.0.0" guice = "7.0.0"
spotbugs = "4.9.8" spotbugs = "4.9.8"
checkerqual = "3.52.1" checkerqual = "3.52.0"
gson = "2.10" gson = "2.10"
guava = "31.1-jre" guava = "31.1-jre"
snakeyaml = "2.0" snakeyaml = "2.0"
@@ -13,7 +13,7 @@ log4j = "2.19.0"
# Plugins # Plugins
worldedit = "7.2.20" worldedit = "7.2.20"
fawe = "2.14.2" fawe = "2.14.0"
placeholderapi = "2.11.7" placeholderapi = "2.11.7"
luckperms = "5.5" luckperms = "5.5"
essentialsx = "2.21.2" essentialsx = "2.21.2"
@@ -33,7 +33,7 @@ vault = "1.7.1"
serverlib = "2.3.7" serverlib = "2.3.7"
# Gradle plugins # Gradle plugins
shadow = "9.3.0" shadow = "9.2.2"
grgit = "4.1.1" grgit = "4.1.1"
spotless = "8.1.0" spotless = "8.1.0"
publish = "0.35.0" publish = "0.35.0"