Hi,
As the title states I'm trying to port a mod from 1.17.1 to 1.18.2. Haven't coded in a few years and I'm currently stuck with this final issue.
private boolean isTower(ServerLevel level, BlockPos pos) {
LOGGER.info("Checking for tower...");
StructureFeature<?> structure;
StructureStart structurePos;
for (String s : Arrays.asList("tower", "ice_tower", "jungle_tower", "derelict_tower", "derelict_grass_tower", "ocean_tower", "ocean_warm_tower")) {
structure = ForgeRegistries.STRUCTURE_FEATURES.getValue(ResourceLocation.tryParse(TOWERS_MODID + ":" + s));
if (structure == null) {
continue;
}
structurePos = level.structureFeatureManager().getStructureAt(pos, false, structure);
if (structurePos.isValid()) {
// Manhattan distance without Y coord
float f = (float) Math.abs(pos.getX() - structurePos.getLocatePos().getX());
float f1 = (float) Math.abs(pos.getZ() - structurePos.getLocatePos().getZ());
if (f + f1 <= 30) {
return true;
}
}
}
The error being "Expected 2 arguments but found 3" because of the code below.
structurePos = level.structureFeatureManager().getStructureAt(pos, false, structure);
if (structurePos.isValid()) {
// Manhattan distance without Y coord
float f = (float) Math.abs(pos.getX() - structurePos.getLocatePos().getX());
float f1 = (float) Math.abs(pos.getZ() - structurePos.getLocatePos().getZ());
if (f + f1 <= 30) {
return true;
}
}
Has anyone run into this or does anyone know what exactly to change in the code above in order to resolve the issue?
I already looked into the changes between https://nekoyue.github.io/ForgeJavaDocs-NG/javadoc/1.17.1/net/minecraft/world/level/levelgen/structure/StructureStart.html and https://nekoyue.github.io/ForgeJavaDocs-NG/javadoc/1.18.2/net/minecraft/world/level/levelgen/structure/StructureStart.html but I haven't been able to figure it out.