- 14
- 1
- 0
Приветствую, начал пилить мод под структуры и столкнулся с вопросом по поводу их генерации. Опять. Год назад создавал вопрос на этом форуме уже, меня по другим вопросам отправляют учить Джаву... Гении... Спасибо, только толк от джавы когда не знаешь библиотек этой игры. Много лью воды, вот есть boolean переменная с циклами которые проверяют блоки, внимание вопрос, что мне надо подцепить чтобы оно подцепило координаты на которых хочет заспавнить стуктуру? Куда тыкнуть и написать? +сюда же второй вопрос на правильность порта кода через чат gpt (код на старую версию изначально был и попросил gpt портировать его, что он как бы и сделал но не пока не проверю не пойму насколько правильно)
Порт от GPT
private static boolean extraSpawningChecks(WorldGenRegion world, BlockPos startPos, int width, int height,
int length) {
for (int x = startPos.getX(); x < startPos.getX() + width; x++) {
for (int z = startPos.getZ(); z < startPos.getZ() + length; z++) {
for (int y = startPos.getY(); y < startPos.getY() + height; y++) {
BlockPos pos = new BlockPos(x, y, z);
if (world.getBlockState(pos).isAir()
|| world.getBlockState(pos).getFluidState().isSource()) {
return false; // Structure is not valid
}
}
}
}
return true;
}
Оригинал
import net.minecraft.block.Blocks;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public class StructureCheck {
public static boolean isValidStructureLocation(World world, BlockPos startPos, int width, int height, int length) {
// Check for air or water blocks within the structure bounds
for (int x = startPos.getX(); x < startPos.getX() + width; x++) {
for (int z = startPos.getZ(); z < startPos.getZ() + length; z++) {
for (int y = startPos.getY(); y < startPos.getY() + height; y++) {
BlockPos pos = new BlockPos(x, y, z);
if (world.getBlockState(pos).getBlock() == Blocks.AIR || world.getBlockState(pos).getBlock() == Blocks.WATER) {
return false; // Structure is not valid
}
}
}
}
return true; // Structure is valid
}
}
Порт от GPT
private static boolean extraSpawningChecks(WorldGenRegion world, BlockPos startPos, int width, int height,
int length) {
for (int x = startPos.getX(); x < startPos.getX() + width; x++) {
for (int z = startPos.getZ(); z < startPos.getZ() + length; z++) {
for (int y = startPos.getY(); y < startPos.getY() + height; y++) {
BlockPos pos = new BlockPos(x, y, z);
if (world.getBlockState(pos).isAir()
|| world.getBlockState(pos).getFluidState().isSource()) {
return false; // Structure is not valid
}
}
}
}
return true;
}
Оригинал
import net.minecraft.block.Blocks;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public class StructureCheck {
public static boolean isValidStructureLocation(World world, BlockPos startPos, int width, int height, int length) {
// Check for air or water blocks within the structure bounds
for (int x = startPos.getX(); x < startPos.getX() + width; x++) {
for (int z = startPos.getZ(); z < startPos.getZ() + length; z++) {
for (int y = startPos.getY(); y < startPos.getY() + height; y++) {
BlockPos pos = new BlockPos(x, y, z);
if (world.getBlockState(pos).getBlock() == Blocks.AIR || world.getBlockState(pos).getBlock() == Blocks.WATER) {
return false; // Structure is not valid
}
}
}
}
return true; // Structure is valid
}
}