diff --git a/build.gradle b/build.gradle index 21a1e1d0..863bfba6 100644 --- a/build.gradle +++ b/build.gradle @@ -41,7 +41,7 @@ dependencies { useOptional "me.shedaniel:RoughlyEnoughItems:${project.rei_version}" useOptional "me.shedaniel:RoughlyEnoughItems-api:${project.rei_version}" - useOptional "grondag:canvas-mc116:${project.canvas_version}" + //useOptional "grondag:canvas-mc116:${project.canvas_version}" } def useOptional(String dep) { diff --git a/src/main/java/ru/betterend/blocks/ChandelierBlock.java b/src/main/java/ru/betterend/blocks/ChandelierBlock.java index cee1bd4b..6fb2cb40 100644 --- a/src/main/java/ru/betterend/blocks/ChandelierBlock.java +++ b/src/main/java/ru/betterend/blocks/ChandelierBlock.java @@ -84,12 +84,12 @@ public class ChandelierBlock extends AttachedBlock implements IRenderTypeable, B rotation = BlockModelRotation.X0_Y180; break; case WEST: - default: rotation = BlockModelRotation.X0_Y90; break; + default: + break; } - ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), - "block/" + stateId.getPath() + state); + ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), "block/" + stateId.getPath() + state); registerBlockModel(stateId, modelId, blockState, modelCache); return ModelsHelper.createMultiVariant(modelId, rotation.getRotation(), false); } diff --git a/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java b/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java index 8154f14f..e116d054 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java @@ -115,8 +115,7 @@ public class EndBarrelBlock extends BarrelBlock implements BlockModelProvider { @Override public UnbakedModel getModelVariant(ResourceLocation stateId, BlockState blockState, Map modelCache) { String open = blockState.getValue(OPEN) ? "_open" : ""; - ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), - "block/" + stateId.getPath() + open); + ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), "block/" + stateId.getPath() + open); registerBlockModel(stateId, modelId, blockState, modelCache); Direction facing = blockState.getValue(FACING); BlockModelRotation rotation = BlockModelRotation.X0_Y0; @@ -125,8 +124,8 @@ public class EndBarrelBlock extends BarrelBlock implements BlockModelProvider { case EAST: rotation = BlockModelRotation.X90_Y90; break; case SOUTH: rotation = BlockModelRotation.X90_Y180; break; case WEST: rotation = BlockModelRotation.X90_Y270; break; - case DOWN: - default: rotation = BlockModelRotation.X180_Y0; break; + case DOWN: rotation = BlockModelRotation.X180_Y0; break; + default: break; } return ModelsHelper.createMultiVariant(modelId, rotation.getRotation(), false); } diff --git a/src/main/java/ru/betterend/blocks/basis/EndButtonBlock.java b/src/main/java/ru/betterend/blocks/basis/EndButtonBlock.java index 6728964f..8f5ff4fe 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndButtonBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndButtonBlock.java @@ -56,23 +56,22 @@ public abstract class EndButtonBlock extends ButtonBlock implements BlockModelPr @Override public UnbakedModel getModelVariant(ResourceLocation stateId, BlockState blockState, Map modelCache) { String powered = blockState.getValue(POWERED) ? "_powered" : ""; - ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), - "block/" + stateId.getPath() + powered); + ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), "block/" + stateId.getPath() + powered); registerBlockModel(stateId, modelId, blockState, modelCache); AttachFace face = blockState.getValue(FACE); boolean isCeiling = face == AttachFace.CEILING; int x = 0, y = 0; switch (face) { case CEILING: x = 180; break; - case WALL: - default: x = 90; break; + case WALL: x = 90; break; + default: break; } switch (blockState.getValue(FACING)) { case NORTH: if (isCeiling) { y = 180; } break; case EAST: y = isCeiling ? 270 : 90; break; case SOUTH: if(!isCeiling) { y = 180; } break; - case WEST: - default: y = isCeiling ? 90 : 270; break; + case WEST: y = isCeiling ? 90 : 270; break; + default: break; } BlockModelRotation rotation = BlockModelRotation.by(x, y); return ModelsHelper.createMultiVariant(modelId, rotation.getRotation(), face == AttachFace.WALL); diff --git a/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java b/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java index 5921c76f..5e0628b6 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java @@ -58,9 +58,10 @@ public class EndDoorBlock extends DoorBlock implements IRenderTypeable, BlockMod pattern = Patterns.createJson(Patterns.BLOCK_DOOR_BOTTOM_HINGE, blockName, blockName); break; case TOP: - default: pattern = Patterns.createJson(Patterns.BLOCK_DOOR_TOP, blockName, blockName); break; + default: + break; } return ModelsHelper.fromPattern(pattern); } @@ -76,34 +77,40 @@ public class EndDoorBlock extends DoorBlock implements IRenderTypeable, BlockMod case EAST: if (hinge && open) { rotation = BlockModelRotation.X0_Y90; - } else if (open) { + } + else if (open) { rotation = BlockModelRotation.X0_Y270; } break; case SOUTH: if (!hinge && !open || hinge && !open) { rotation = BlockModelRotation.X0_Y90; - } else if (hinge) { + } + else if (hinge) { rotation = BlockModelRotation.X0_Y180; } break; case WEST: if (!hinge && !open || hinge && !open) { rotation = BlockModelRotation.X0_Y180; - } else if (hinge) { + } + else if (hinge) { rotation = BlockModelRotation.X0_Y270; - } else { + } + else { rotation = BlockModelRotation.X0_Y90; } break; case NORTH: - default: if (!hinge && !open || hinge && !open) { rotation = BlockModelRotation.X0_Y270; - } else if (!hinge) { + } + else if (!hinge) { rotation = BlockModelRotation.X0_Y180; } break; + default: + break; } ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), "block/" + stateId.getPath() + "_" + doorType); @@ -130,10 +137,7 @@ public class EndDoorBlock extends DoorBlock implements IRenderTypeable, BlockMod } protected enum DoorType implements StringRepresentable { - BOTTOM_HINGE("bottom_hinge"), - TOP_HINGE("top_hinge"), - BOTTOM("bottom"), - TOP("top"); + BOTTOM_HINGE("bottom_hinge"), TOP_HINGE("top_hinge"), BOTTOM("bottom"), TOP("top"); private final String name; diff --git a/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java index d03b15be..afaf623f 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java @@ -47,8 +47,7 @@ public class EndPillarBlock extends RotatedPillarBlock implements BlockModelProv @Override public UnbakedModel getModelVariant(ResourceLocation stateId, BlockState blockState, Map modelCache) { - ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), - "block/" + stateId.getPath()); + ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), "block/" + stateId.getPath()); registerBlockModel(stateId, modelId, blockState, modelCache); return ModelsHelper.createRotatedModel(modelId, blockState.getValue(AXIS)); } diff --git a/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java b/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java index e8452506..ceadfe4f 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java @@ -69,12 +69,10 @@ public class EndStairsBlock extends StairBlock implements BlockModelProvider { StairsShape shape = blockState.getValue(SHAPE); switch (shape) { case INNER_LEFT: - case INNER_RIGHT: - state = "_inner"; break; + case INNER_RIGHT: state = "_inner"; break; case OUTER_LEFT: - case OUTER_RIGHT: - default: - state = "_outer"; break; + case OUTER_RIGHT: state = "_outer"; break; + default: break; } ResourceLocation modelId = new ResourceLocation(stateId.getNamespace(), "block/" + stateId.getPath() + state); registerBlockModel(stateId, modelId, blockState, modelCache); @@ -100,9 +98,9 @@ public class EndStairsBlock extends StairBlock implements BlockModelProvider { else if (!isLeft) y = 90; break; case WEST: - default: y = (isTop && isRight) ? 270 : (!isTop && isLeft) ? 90 : 180; break; + default: break; } BlockModelRotation rotation = BlockModelRotation.by(x, y); return ModelsHelper.createMultiVariant(modelId, rotation.getRotation(), true); diff --git a/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java b/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java index 98d5fa64..1c28a416 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java @@ -77,9 +77,9 @@ public class EndTrapdoorBlock extends TrapDoorBlock implements IRenderTypeable, y = (isTop && isOpen) ? 0 : 180; break; case WEST: - default: y = (isTop && isOpen) ? 90 : 270; break; + default: break; } BlockModelRotation rotation = BlockModelRotation.by(x, y); return ModelsHelper.createMultiVariant(modelId, rotation.getRotation(), false); diff --git a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java index 518a4179..099d392b 100644 --- a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java @@ -361,9 +361,9 @@ public class PedestalBlock extends BlockBaseNotFull implements EntityBlock { pattern = Patterns.createJson(Patterns.BLOCK_PEDESTAL_BOTTOM, textures); break; case PILLAR: - default: pattern = Patterns.createJson(Patterns.BLOCK_PEDESTAL_PILLAR, textures); break; + default: break; } return ModelsHelper.fromPattern(pattern); } diff --git a/src/main/java/ru/betterend/client/models/ModelsHelper.java b/src/main/java/ru/betterend/client/models/ModelsHelper.java index 5b55f000..4ce6412f 100644 --- a/src/main/java/ru/betterend/client/models/ModelsHelper.java +++ b/src/main/java/ru/betterend/client/models/ModelsHelper.java @@ -69,7 +69,8 @@ public class ModelsHelper { BlockModelRotation rotation = BlockModelRotation.X0_Y0; switch (axis) { case X: rotation = BlockModelRotation.X90_Y90; break; - case Z: default: rotation = BlockModelRotation.X90_Y0; break; + case Z: rotation = BlockModelRotation.X90_Y0; break; + default: break; } return createMultiVariant(resourceLocation, rotation.getRotation(), false); } diff --git a/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java index 9d2fea32..42b7fe9b 100644 --- a/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java @@ -12,11 +12,11 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; import ru.bclib.util.MHelper; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndTags; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.SDF; import ru.betterend.world.features.DefaultFeature; public class BigEtherTreeFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java index 2fb2b9e8..a001dd22 100644 --- a/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java @@ -17,18 +17,18 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.PosInfo; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFFlatWave; +import ru.bclib.sdf.operator.SDFSmoothUnion; +import ru.bclib.sdf.primitive.SDFCappedCone; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.PosInfo; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFFlatWave; -import ru.betterend.util.sdf.operator.SDFSmoothUnion; -import ru.betterend.util.sdf.primitive.SDFCappedCone; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class GreatNightshadeTreeFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java index 750b2f86..a918dd1c 100644 --- a/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java @@ -17,18 +17,18 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.PosInfo; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFFlatWave; +import ru.bclib.sdf.operator.SDFSmoothUnion; +import ru.bclib.sdf.primitive.SDFCappedCone; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.PosInfo; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFFlatWave; -import ru.betterend.util.sdf.operator.SDFSmoothUnion; -import ru.betterend.util.sdf.primitive.SDFCappedCone; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class NightshadeRedwoodTreeFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java index c2a99ea6..12a2e0ce 100644 --- a/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java @@ -16,17 +16,17 @@ import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.AABB; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.operator.SDFUnion; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.integration.Integrations; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndTags; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.operator.SDFUnion; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class OldBulbisTreeFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/util/SplineHelper.java b/src/main/java/ru/betterend/util/SplineHelper.java index e5f9ce54..9778c810 100644 --- a/src/main/java/ru/betterend/util/SplineHelper.java +++ b/src/main/java/ru/betterend/util/SplineHelper.java @@ -13,10 +13,10 @@ import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.Mth; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFUnion; +import ru.bclib.sdf.primitive.SDFLine; import ru.bclib.util.MHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFUnion; -import ru.betterend.util.sdf.primitive.SDFLine; public class SplineHelper { public static List makeSpline(float x1, float y1, float z1, float x2, float y2, float z2, int points) { diff --git a/src/main/java/ru/betterend/util/sdf/PosInfo.java b/src/main/java/ru/betterend/util/sdf/PosInfo.java deleted file mode 100644 index 9d7133f0..00000000 --- a/src/main/java/ru/betterend/util/sdf/PosInfo.java +++ /dev/null @@ -1,104 +0,0 @@ -package ru.betterend.util.sdf; - -import java.util.Map; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; - -public class PosInfo implements Comparable { - private static final BlockState AIR = Blocks.AIR.defaultBlockState(); - private final Map blocks; - private final Map add; - private final BlockPos pos; - private BlockState state; - - public static PosInfo create(Map blocks, Map add, BlockPos pos) { - return new PosInfo(blocks, add, pos); - } - - private PosInfo(Map blocks, Map add, BlockPos pos) { - this.blocks = blocks; - this.add = add; - this.pos = pos; - blocks.put(pos, this); - } - - public BlockState getState() { - return state; - } - - public BlockState getState(BlockPos pos) { - PosInfo info = blocks.get(pos); - if (info == null) { - info = add.get(pos); - return info == null ? AIR : info.getState(); - } - return info.getState(); - } - - public void setState(BlockState state) { - this.state = state; - } - - public void setState(BlockPos pos, BlockState state) { - PosInfo info = blocks.get(pos); - if (info != null) { - info.setState(state); - } - } - - public BlockState getState(Direction dir) { - PosInfo info = blocks.get(pos.relative(dir)); - if (info == null) { - info = add.get(pos.relative(dir)); - return info == null ? AIR : info.getState(); - } - return info.getState(); - } - - public BlockState getState(Direction dir, int distance) { - PosInfo info = blocks.get(pos.relative(dir, distance)); - if (info == null) { - return AIR; - } - return info.getState(); - } - - public BlockState getStateUp() { - return getState(Direction.UP); - } - - public BlockState getStateDown() { - return getState(Direction.DOWN); - } - - @Override - public int hashCode() { - return pos.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof PosInfo)) { - return false; - } - return pos.equals(((PosInfo) obj).pos); - } - - @Override - public int compareTo(PosInfo info) { - return this.pos.getY() - info.pos.getY(); - } - - public BlockPos getPos() { - return pos; - } - - public void setBlockPos(BlockPos pos, BlockState state) { - PosInfo info = new PosInfo(blocks, add, pos); - info.state = state; - add.put(pos, info); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/SDF.java b/src/main/java/ru/betterend/util/sdf/SDF.java deleted file mode 100644 index 6e446fdd..00000000 --- a/src/main/java/ru/betterend/util/sdf/SDF.java +++ /dev/null @@ -1,310 +0,0 @@ -package ru.betterend.util.sdf; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Function; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.level.ServerLevelAccessor; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.AABB; -import ru.betterend.util.BlocksHelper; -import ru.betterend.world.structures.StructureWorld; - -public abstract class SDF { - private List> postProcesses = Lists.newArrayList(); - private Function canReplace = (state) -> { - return state.getMaterial().isReplaceable(); - }; - - public abstract float getDistance(float x, float y, float z); - - public abstract BlockState getBlockState(BlockPos pos); - - public SDF addPostProcess(Function postProcess) { - this.postProcesses.add(postProcess); - return this; - } - - public SDF setReplaceFunction(Function canReplace) { - this.canReplace = canReplace; - return this; - } - - public void fillRecursive(ServerLevelAccessor world, BlockPos start) { - Map mapWorld = Maps.newHashMap(); - Map addInfo = Maps.newHashMap(); - Set blocks = Sets.newHashSet(); - Set ends = Sets.newHashSet(); - Set add = Sets.newHashSet(); - ends.add(new BlockPos(0, 0, 0)); - boolean run = true; - - MutableBlockPos bPos = new MutableBlockPos(); - - while (run) { - for (BlockPos center: ends) { - for (Direction dir: Direction.values()) { - bPos.set(center).move(dir); - BlockPos wpos = bPos.offset(start); - - if (!blocks.contains(bPos) && canReplace.apply(world.getBlockState(wpos))) { - if (this.getDistance(bPos.getX(), bPos.getY(), bPos.getZ()) < 0) { - BlockState state = getBlockState(wpos); - PosInfo.create(mapWorld, addInfo, wpos).setState(state); - add.add(bPos.immutable()); - } - } - } - } - - blocks.addAll(ends); - ends.clear(); - ends.addAll(add); - add.clear(); - - run &= !ends.isEmpty(); - } - - List infos = new ArrayList(mapWorld.values()); - if (infos.size() > 0) { - Collections.sort(infos); - postProcesses.forEach((postProcess) -> { - infos.forEach((info) -> { - info.setState(postProcess.apply(info)); - }); - }); - infos.forEach((info) -> { - BlocksHelper.setWithoutUpdate(world, info.getPos(), info.getState()); - }); - - infos.clear(); - infos.addAll(addInfo.values()); - Collections.sort(infos); - postProcesses.forEach((postProcess) -> { - infos.forEach((info) -> { - info.setState(postProcess.apply(info)); - }); - }); - infos.forEach((info) -> { - if (canReplace.apply(world.getBlockState(info.getPos()))) { - BlocksHelper.setWithoutUpdate(world, info.getPos(), info.getState()); - } - }); - } - } - - public void fillArea(ServerLevelAccessor world, BlockPos center, AABB box) { - Map mapWorld = Maps.newHashMap(); - Map addInfo = Maps.newHashMap(); - - MutableBlockPos mut = new MutableBlockPos(); - for (int y = (int) box.minY; y <= box.maxY; y++) { - mut.setY(y); - for (int x = (int) box.minX; x <= box.maxX; x++) { - mut.setX(x); - for (int z = (int) box.minZ; z <= box.maxZ; z++) { - mut.setZ(z); - if (canReplace.apply(world.getBlockState(mut))) { - BlockPos fpos = mut.subtract(center); - if (this.getDistance(fpos.getX(), fpos.getY(), fpos.getZ()) < 0) { - PosInfo.create(mapWorld, addInfo, mut.immutable()).setState(getBlockState(mut)); - } - } - } - } - } - - List infos = new ArrayList(mapWorld.values()); - if (infos.size() > 0) { - Collections.sort(infos); - postProcesses.forEach((postProcess) -> { - infos.forEach((info) -> { - info.setState(postProcess.apply(info)); - }); - }); - infos.forEach((info) -> { - BlocksHelper.setWithoutUpdate(world, info.getPos(), info.getState()); - }); - - infos.clear(); - infos.addAll(addInfo.values()); - Collections.sort(infos); - postProcesses.forEach((postProcess) -> { - infos.forEach((info) -> { - info.setState(postProcess.apply(info)); - }); - }); - infos.forEach((info) -> { - if (canReplace.apply(world.getBlockState(info.getPos()))) { - BlocksHelper.setWithoutUpdate(world, info.getPos(), info.getState()); - } - }); - } - } - - public void fillRecursiveIgnore(ServerLevelAccessor world, BlockPos start, Function ignore) { - Map mapWorld = Maps.newHashMap(); - Map addInfo = Maps.newHashMap(); - Set blocks = Sets.newHashSet(); - Set ends = Sets.newHashSet(); - Set add = Sets.newHashSet(); - ends.add(new BlockPos(0, 0, 0)); - boolean run = true; - - MutableBlockPos bPos = new MutableBlockPos(); - - while (run) { - for (BlockPos center: ends) { - for (Direction dir: Direction.values()) { - bPos.set(center).move(dir); - BlockPos wpos = bPos.offset(start); - BlockState state = world.getBlockState(wpos); - boolean ign = ignore.apply(state); - if (!blocks.contains(bPos) && (ign || canReplace.apply(state))) { - if (this.getDistance(bPos.getX(), bPos.getY(), bPos.getZ()) < 0) { - PosInfo.create(mapWorld, addInfo, wpos).setState(ign ? state : getBlockState(bPos)); - add.add(bPos.immutable()); - } - } - } - } - - blocks.addAll(ends); - ends.clear(); - ends.addAll(add); - add.clear(); - - run &= !ends.isEmpty(); - } - - List infos = new ArrayList(mapWorld.values()); - if (infos.size() > 0) { - Collections.sort(infos); - postProcesses.forEach((postProcess) -> { - infos.forEach((info) -> { - info.setState(postProcess.apply(info)); - }); - }); - infos.forEach((info) -> { - BlocksHelper.setWithoutUpdate(world, info.getPos(), info.getState()); - }); - - infos.clear(); - infos.addAll(addInfo.values()); - Collections.sort(infos); - postProcesses.forEach((postProcess) -> { - infos.forEach((info) -> { - info.setState(postProcess.apply(info)); - }); - }); - infos.forEach((info) -> { - if (canReplace.apply(world.getBlockState(info.getPos()))) { - BlocksHelper.setWithoutUpdate(world, info.getPos(), info.getState()); - } - }); - } - } - - public void fillRecursive(StructureWorld world, BlockPos start) { - Map mapWorld = Maps.newHashMap(); - Map addInfo = Maps.newHashMap(); - Set blocks = Sets.newHashSet(); - Set ends = Sets.newHashSet(); - Set add = Sets.newHashSet(); - ends.add(new BlockPos(0, 0, 0)); - boolean run = true; - - MutableBlockPos bPos = new MutableBlockPos(); - - while (run) { - for (BlockPos center: ends) { - for (Direction dir: Direction.values()) { - bPos.set(center).move(dir); - BlockPos wpos = bPos.offset(start); - - if (!blocks.contains(bPos)) { - if (this.getDistance(bPos.getX(), bPos.getY(), bPos.getZ()) < 0) { - BlockState state = getBlockState(wpos); - PosInfo.create(mapWorld, addInfo, wpos).setState(state); - add.add(bPos.immutable()); - } - } - } - } - - blocks.addAll(ends); - ends.clear(); - ends.addAll(add); - add.clear(); - - run &= !ends.isEmpty(); - } - - List infos = new ArrayList(mapWorld.values()); - Collections.sort(infos); - postProcesses.forEach((postProcess) -> { - infos.forEach((info) -> { - info.setState(postProcess.apply(info)); - }); - }); - infos.forEach((info) -> { - world.setBlock(info.getPos(), info.getState()); - }); - - infos.clear(); - infos.addAll(addInfo.values()); - Collections.sort(infos); - postProcesses.forEach((postProcess) -> { - infos.forEach((info) -> { - info.setState(postProcess.apply(info)); - }); - }); - infos.forEach((info) -> { - world.setBlock(info.getPos(), info.getState()); - }); - } - - public Set getPositions(ServerLevelAccessor world, BlockPos start) { - Set blocks = Sets.newHashSet(); - Set ends = Sets.newHashSet(); - Set add = Sets.newHashSet(); - ends.add(new BlockPos(0, 0, 0)); - boolean run = true; - - MutableBlockPos bPos = new MutableBlockPos(); - - while (run) { - for (BlockPos center: ends) { - for (Direction dir: Direction.values()) { - bPos.set(center).move(dir); - BlockPos wpos = bPos.offset(start); - BlockState state = world.getBlockState(wpos); - if (!blocks.contains(wpos) && canReplace.apply(state)) { - if (this.getDistance(bPos.getX(), bPos.getY(), bPos.getZ()) < 0) { - add.add(bPos.immutable()); - } - } - } - } - - ends.forEach((end) -> blocks.add(end.offset(start))); - ends.clear(); - ends.addAll(add); - add.clear(); - - run &= !ends.isEmpty(); - } - - return blocks; - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFBinary.java b/src/main/java/ru/betterend/util/sdf/operator/SDFBinary.java deleted file mode 100644 index 1d48561d..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFBinary.java +++ /dev/null @@ -1,34 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.state.BlockState; -import ru.betterend.util.sdf.SDF; - -public abstract class SDFBinary extends SDF { - protected SDF sourceA; - protected SDF sourceB; - protected boolean firstValue; - - public SDFBinary setSourceA(SDF sourceA) { - this.sourceA = sourceA; - return this; - } - - public SDFBinary setSourceB(SDF sourceB) { - this.sourceB = sourceB; - return this; - } - - protected void selectValue(float a, float b) { - firstValue = a < b; - } - - @Override - public BlockState getBlockState(BlockPos pos) { - if (firstValue) { - return sourceA.getBlockState(pos); - } else { - return sourceB.getBlockState(pos); - } - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java b/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java deleted file mode 100644 index 108a9c39..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java +++ /dev/null @@ -1,22 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import java.util.function.Consumer; - -import com.mojang.math.Vector3f; - -public class SDFCoordModify extends SDFUnary { - private static final Vector3f POS = new Vector3f(); - private Consumer function; - - public SDFCoordModify setFunction(Consumer function) { - this.function = function; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - POS.set(x, y, z); - function.accept(POS); - return this.source.getDistance(POS.x(), POS.y(), POS.z()); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFCopyRotate.java b/src/main/java/ru/betterend/util/sdf/operator/SDFCopyRotate.java deleted file mode 100644 index 6fdfa09f..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFCopyRotate.java +++ /dev/null @@ -1,19 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import ru.bclib.util.MHelper; - -public class SDFCopyRotate extends SDFUnary { - int count = 1; - - public SDFCopyRotate setCount(int count) { - this.count = count; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - float px = (float) Math.atan2(x, z); - float pz = MHelper.length(x, z); - return this.source.getDistance(px, y, pz); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java b/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java deleted file mode 100644 index 531d7158..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java +++ /dev/null @@ -1,21 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import java.util.function.Function; - -import com.mojang.math.Vector3f; - -public class SDFDisplacement extends SDFUnary { - private static final Vector3f POS = new Vector3f(); - private Function displace; - - public SDFDisplacement setFunction(Function displace) { - this.displace = displace; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - POS.set(x, y, z); - return this.source.getDistance(x, y, z) + displace.apply(POS); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFFlatWave.java b/src/main/java/ru/betterend/util/sdf/operator/SDFFlatWave.java deleted file mode 100644 index f5707bdb..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFFlatWave.java +++ /dev/null @@ -1,28 +0,0 @@ -package ru.betterend.util.sdf.operator; - -public class SDFFlatWave extends SDFDisplacement { - private int rayCount = 1; - private float intensity; - private float angle; - - public SDFFlatWave() { - setFunction((pos) -> { - return (float) Math.cos(Math.atan2(pos.x(), pos.z()) * rayCount + angle) * intensity; - }); - } - - public SDFFlatWave setRaysCount(int count) { - this.rayCount = count; - return this; - } - - public SDFFlatWave setAngle(float angle) { - this.angle = angle; - return this; - } - - public SDFFlatWave setIntensity(float intensity) { - this.intensity = intensity; - return this; - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFHeightmap.java b/src/main/java/ru/betterend/util/sdf/operator/SDFHeightmap.java deleted file mode 100644 index a05ebdad..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFHeightmap.java +++ /dev/null @@ -1,64 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import com.mojang.blaze3d.platform.NativeImage; - -import net.minecraft.util.Mth; - -public class SDFHeightmap extends SDFDisplacement { - private float intensity = 1F; - private NativeImage map; - private float offsetX; - private float offsetZ; - private float scale; - private float cos = 1; - private float sin = 0; - - public SDFHeightmap() { - setFunction((pos) -> { - if (map == null) { - return 0F; - } - float px = Mth.clamp(pos.x() * scale + offsetX, 0, map.getWidth() - 2); - float pz = Mth.clamp(pos.z() * scale + offsetZ, 0, map.getHeight() - 2); - float dx = (px * cos - pz * sin); - float dz = (pz * cos + px * sin); - int x1 = Mth.floor(dx); - int z1 = Mth.floor(dz); - int x2 = x1 + 1; - int z2 = z1 + 1; - dx = dx - x1; - dz = dz - z1; - float a = (map.getPixelRGBA(x1, z1) & 255) / 255F; - float b = (map.getPixelRGBA(x2, z1) & 255) / 255F; - float c = (map.getPixelRGBA(x1, z2) & 255) / 255F; - float d = (map.getPixelRGBA(x2, z2) & 255) / 255F; - a = Mth.lerp(dx, a, b); - b = Mth.lerp(dx, c, d); - return -Mth.lerp(dz, a, b) * intensity; - }); - } - - public SDFHeightmap setMap(NativeImage map) { - this.map = map; - offsetX = map.getWidth() * 0.5F; - offsetZ = map.getHeight() * 0.5F; - scale = map.getWidth(); - return this; - } - - public SDFHeightmap setAngle(float angle) { - sin = Mth.sin(angle); - cos = Mth.cos(angle); - return this; - } - - public SDFHeightmap setScale(float scale) { - this.scale = map.getWidth() * scale; - return this; - } - - public SDFHeightmap setIntensity(float intensity) { - this.intensity = intensity; - return this; - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFIntersection.java b/src/main/java/ru/betterend/util/sdf/operator/SDFIntersection.java deleted file mode 100644 index 934b306c..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFIntersection.java +++ /dev/null @@ -1,13 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import ru.bclib.util.MHelper; - -public class SDFIntersection extends SDFBinary { - @Override - public float getDistance(float x, float y, float z) { - float a = this.sourceA.getDistance(x, y, z); - float b = this.sourceB.getDistance(x, y, z); - this.selectValue(a, b); - return MHelper.max(a, b); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFInvert.java b/src/main/java/ru/betterend/util/sdf/operator/SDFInvert.java deleted file mode 100644 index 455635e7..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFInvert.java +++ /dev/null @@ -1,8 +0,0 @@ -package ru.betterend.util.sdf.operator; - -public class SDFInvert extends SDFUnary { - @Override - public float getDistance(float x, float y, float z) { - return -this.source.getDistance(x, y, z); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFRadialNoiseMap.java b/src/main/java/ru/betterend/util/sdf/operator/SDFRadialNoiseMap.java deleted file mode 100644 index 6d7ebc57..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFRadialNoiseMap.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import net.minecraft.util.Mth; -import ru.bclib.util.MHelper; -import ru.betterend.noise.OpenSimplexNoise; - -public class SDFRadialNoiseMap extends SDFDisplacement { - private static final float SIN = Mth.sin(0.5F); - private static final float COS = Mth.cos(0.5F); - - private OpenSimplexNoise noise; - private float intensity = 1F; - private float radius = 1F; - private short offsetX; - private short offsetZ; - - public SDFRadialNoiseMap() { - setFunction((pos) -> { - if (intensity == 0) { - return 0F; - } - float px = pos.x() / radius; - float pz = pos.z() / radius; - float distance = MHelper.lengthSqr(px, pz); - if (distance > 1) { - return 0F; - } - distance = 1 - Mth.sqrt(distance); - float nx = px * COS - pz * SIN; - float nz = pz * COS + px * SIN; - distance *= getNoise(nx * 0.75 + offsetX, nz * 0.75 + offsetZ); - return distance * intensity; - }); - } - - private float getNoise(double x, double z) { - return (float) noise.eval(x, z) + (float) noise.eval(x * 3 + 1000, z * 3) * 0.5F + (float) noise.eval(x * 9 + 1000, z * 9) * 0.2F; - } - - public SDFRadialNoiseMap setSeed(long seed) { - noise = new OpenSimplexNoise(seed); - return this; - } - - public SDFRadialNoiseMap setIntensity(float intensity) { - this.intensity = intensity; - return this; - } - - public SDFRadialNoiseMap setRadius(float radius) { - this.radius = radius; - return this; - } - - public SDFRadialNoiseMap setOffset(int x, int z) { - offsetX = (short) (x & 32767); - offsetZ = (short) (z & 32767); - return this; - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFRotation.java b/src/main/java/ru/betterend/util/sdf/operator/SDFRotation.java deleted file mode 100644 index 3772443a..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFRotation.java +++ /dev/null @@ -1,21 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import com.mojang.math.Quaternion; -import com.mojang.math.Vector3f; - -public class SDFRotation extends SDFUnary { - private static final Vector3f POS = new Vector3f(); - private Quaternion rotation; - - public SDFRotation setRotation(Vector3f axis, float rotationAngle) { - rotation = new Quaternion(axis, rotationAngle, false); - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - POS.set(x, y, z); - POS.transform(rotation); - return source.getDistance(POS.x(), POS.y(), POS.z()); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFRound.java b/src/main/java/ru/betterend/util/sdf/operator/SDFRound.java deleted file mode 100644 index fe081381..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFRound.java +++ /dev/null @@ -1,15 +0,0 @@ -package ru.betterend.util.sdf.operator; - -public class SDFRound extends SDFUnary { - private float radius; - - public SDFRound setRadius(float radius) { - this.radius = radius; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - return this.source.getDistance(x, y, z) - radius; - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFScale.java b/src/main/java/ru/betterend/util/sdf/operator/SDFScale.java deleted file mode 100644 index f70781a7..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFScale.java +++ /dev/null @@ -1,15 +0,0 @@ -package ru.betterend.util.sdf.operator; - -public class SDFScale extends SDFUnary { - private float scale; - - public SDFScale setScale(float scale) { - this.scale = scale; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - return source.getDistance(x / scale, y / scale, z / scale) * scale; - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFScale3D.java b/src/main/java/ru/betterend/util/sdf/operator/SDFScale3D.java deleted file mode 100644 index aee54e49..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFScale3D.java +++ /dev/null @@ -1,19 +0,0 @@ -package ru.betterend.util.sdf.operator; - -public class SDFScale3D extends SDFUnary { - private float x; - private float y; - private float z; - - public SDFScale3D setScale(float x, float y, float z) { - this.x = x; - this.y = y; - this.z = z; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - return source.getDistance(x / this.x, y / this.y, z / this.z); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFSmoothIntersection.java b/src/main/java/ru/betterend/util/sdf/operator/SDFSmoothIntersection.java deleted file mode 100644 index de4d12f0..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFSmoothIntersection.java +++ /dev/null @@ -1,21 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import net.minecraft.util.Mth; - -public class SDFSmoothIntersection extends SDFBinary { - private float radius; - - public SDFSmoothIntersection setRadius(float radius) { - this.radius = radius; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - float a = this.sourceA.getDistance(x, y, z); - float b = this.sourceB.getDistance(x, y, z); - this.selectValue(a, b); - float h = Mth.clamp(0.5F - 0.5F * (b - a) / radius, 0F, 1F); - return Mth.lerp(h, b, a) + radius * h * (1F - h); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFSmoothSubtraction.java b/src/main/java/ru/betterend/util/sdf/operator/SDFSmoothSubtraction.java deleted file mode 100644 index 8f2a5226..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFSmoothSubtraction.java +++ /dev/null @@ -1,21 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import net.minecraft.util.Mth; - -public class SDFSmoothSubtraction extends SDFBinary { - private float radius; - - public SDFSmoothSubtraction setRadius(float radius) { - this.radius = radius; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - float a = this.sourceA.getDistance(x, y, z); - float b = this.sourceB.getDistance(x, y, z); - this.selectValue(a, b); - float h = Mth.clamp(0.5F - 0.5F * (b + a) / radius, 0F, 1F); - return Mth.lerp(h, b, -a) + radius * h * (1F - h); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFSmoothUnion.java b/src/main/java/ru/betterend/util/sdf/operator/SDFSmoothUnion.java deleted file mode 100644 index 103156fc..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFSmoothUnion.java +++ /dev/null @@ -1,21 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import net.minecraft.util.Mth; - -public class SDFSmoothUnion extends SDFBinary { - private float radius; - - public SDFSmoothUnion setRadius(float radius) { - this.radius = radius; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - float a = this.sourceA.getDistance(x, y, z); - float b = this.sourceB.getDistance(x, y, z); - this.selectValue(a, b); - float h = Mth.clamp(0.5F + 0.5F * (b - a) / radius, 0F, 1F); - return Mth.lerp(h, b, a) - radius * h * (1F - h); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFSubtraction.java b/src/main/java/ru/betterend/util/sdf/operator/SDFSubtraction.java deleted file mode 100644 index b0f3cb63..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFSubtraction.java +++ /dev/null @@ -1,13 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import ru.bclib.util.MHelper; - -public class SDFSubtraction extends SDFBinary { - @Override - public float getDistance(float x, float y, float z) { - float a = this.sourceA.getDistance(x, y, z); - float b = this.sourceB.getDistance(x, y, z); - this.selectValue(a, b); - return MHelper.max(a, -b); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFTranslate.java b/src/main/java/ru/betterend/util/sdf/operator/SDFTranslate.java deleted file mode 100644 index 980e4d49..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFTranslate.java +++ /dev/null @@ -1,19 +0,0 @@ -package ru.betterend.util.sdf.operator; - -public class SDFTranslate extends SDFUnary { - float x; - float y; - float z; - - public SDFTranslate setTranslate(float x, float y, float z) { - this.x = x; - this.y = y; - this.z = z; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - return source.getDistance(x - this.x, y - this.y, z - this.z); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFUnary.java b/src/main/java/ru/betterend/util/sdf/operator/SDFUnary.java deleted file mode 100644 index 233901c3..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFUnary.java +++ /dev/null @@ -1,19 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.state.BlockState; -import ru.betterend.util.sdf.SDF; - -public abstract class SDFUnary extends SDF { - protected SDF source; - - public SDFUnary setSource(SDF source) { - this.source = source; - return this; - } - - @Override - public BlockState getBlockState(BlockPos pos) { - return source.getBlockState(pos); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFUnion.java b/src/main/java/ru/betterend/util/sdf/operator/SDFUnion.java deleted file mode 100644 index 1ac5023d..00000000 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFUnion.java +++ /dev/null @@ -1,13 +0,0 @@ -package ru.betterend.util.sdf.operator; - -import ru.bclib.util.MHelper; - -public class SDFUnion extends SDFBinary { - @Override - public float getDistance(float x, float y, float z) { - float a = this.sourceA.getDistance(x, y, z); - float b = this.sourceB.getDistance(x, y, z); - this.selectValue(a, b); - return MHelper.min(a, b); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/primitive/SDFCappedCone.java b/src/main/java/ru/betterend/util/sdf/primitive/SDFCappedCone.java deleted file mode 100644 index de76ecf1..00000000 --- a/src/main/java/ru/betterend/util/sdf/primitive/SDFCappedCone.java +++ /dev/null @@ -1,39 +0,0 @@ -package ru.betterend.util.sdf.primitive; - -import net.minecraft.util.Mth; -import ru.bclib.util.MHelper; - -public class SDFCappedCone extends SDFPrimitive { - private float radius1; - private float radius2; - private float height; - - public SDFCappedCone setRadius1(float radius) { - this.radius1 = radius; - return this; - } - - public SDFCappedCone setRadius2(float radius) { - this.radius2 = radius; - return this; - } - - public SDFCappedCone setHeight(float height) { - this.height = height; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - float qx = MHelper.length(x, z); - float k2x = radius2 - radius1; - float k2y = 2 * height; - float cax = qx - MHelper.min(qx, (y < 0F) ? radius1 : radius2); - float cay = Math.abs(y) - height; - float mlt = Mth.clamp(MHelper.dot(radius2 - qx, height - y, k2x, k2y) / MHelper.dot(k2x, k2y, k2x, k2y), 0F, 1F); - float cbx = qx - radius2 + k2x * mlt; - float cby = y - height + k2y * mlt; - float s = (cbx < 0F && cay < 0F) ? -1F : 1F; - return s * (float) Math.sqrt(MHelper.min(MHelper.dot(cax, cay, cax, cay), MHelper.dot(cbx, cby, cbx, cby))); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/primitive/SDFCapsule.java b/src/main/java/ru/betterend/util/sdf/primitive/SDFCapsule.java deleted file mode 100644 index da5fc9e6..00000000 --- a/src/main/java/ru/betterend/util/sdf/primitive/SDFCapsule.java +++ /dev/null @@ -1,24 +0,0 @@ -package ru.betterend.util.sdf.primitive; - -import net.minecraft.util.Mth; -import ru.bclib.util.MHelper; - -public class SDFCapsule extends SDFPrimitive { - private float radius; - private float height; - - public SDFCapsule setRadius(float radius) { - this.radius = radius; - return this; - } - - public SDFCapsule setHeight(float height) { - this.height = height; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - return MHelper.length(x, y - Mth.clamp(y, 0, height), z) - radius; - } -} diff --git a/src/main/java/ru/betterend/util/sdf/primitive/SDFFlatland.java b/src/main/java/ru/betterend/util/sdf/primitive/SDFFlatland.java deleted file mode 100644 index 321e29c9..00000000 --- a/src/main/java/ru/betterend/util/sdf/primitive/SDFFlatland.java +++ /dev/null @@ -1,8 +0,0 @@ -package ru.betterend.util.sdf.primitive; - -public class SDFFlatland extends SDFPrimitive { - @Override - public float getDistance(float x, float y, float z) { - return y; - } -} diff --git a/src/main/java/ru/betterend/util/sdf/primitive/SDFHexPrism.java b/src/main/java/ru/betterend/util/sdf/primitive/SDFHexPrism.java deleted file mode 100644 index 43d59b43..00000000 --- a/src/main/java/ru/betterend/util/sdf/primitive/SDFHexPrism.java +++ /dev/null @@ -1,26 +0,0 @@ -package ru.betterend.util.sdf.primitive; - -import ru.bclib.util.MHelper; - -public class SDFHexPrism extends SDFPrimitive { - private float radius; - private float height; - - public SDFHexPrism setRadius(float radius) { - this.radius = radius; - return this; - } - - public SDFHexPrism setHeight(float height) { - this.height = height; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - float px = Math.abs(x); - float py = Math.abs(y); - float pz = Math.abs(z); - return MHelper.max(py - height, MHelper.max((px * 0.866025F + pz * 0.5F), pz) - radius); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/primitive/SDFLine.java b/src/main/java/ru/betterend/util/sdf/primitive/SDFLine.java deleted file mode 100644 index 06098973..00000000 --- a/src/main/java/ru/betterend/util/sdf/primitive/SDFLine.java +++ /dev/null @@ -1,49 +0,0 @@ -package ru.betterend.util.sdf.primitive; - -import net.minecraft.util.Mth; -import ru.bclib.util.MHelper; - -public class SDFLine extends SDFPrimitive { - private float radius; - private float x1; - private float y1; - private float z1; - private float x2; - private float y2; - private float z2; - - public SDFLine setRadius(float radius) { - this.radius = radius; - return this; - } - - public SDFLine setStart(float x, float y, float z) { - this.x1 = x; - this.y1 = y; - this.z1 = z; - return this; - } - - public SDFLine setEnd(float x, float y, float z) { - this.x2 = x; - this.y2 = y; - this.z2 = z; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - float pax = x - x1; - float pay = y - y1; - float paz = z - z1; - - float bax = x2 - x1; - float bay = y2 - y1; - float baz = z2 - z1; - - float dpb = MHelper.dot(pax, pay, paz, bax, bay, baz); - float dbb = MHelper.dot(bax, bay, baz, bax, bay, baz); - float h = Mth.clamp(dpb / dbb, 0F, 1F); - return MHelper.length(pax - bax * h, pay - bay * h, paz - baz * h) - radius; - } -} diff --git a/src/main/java/ru/betterend/util/sdf/primitive/SDFPie.java b/src/main/java/ru/betterend/util/sdf/primitive/SDFPie.java deleted file mode 100644 index 4a7292a8..00000000 --- a/src/main/java/ru/betterend/util/sdf/primitive/SDFPie.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.betterend.util.sdf.primitive; - -import net.minecraft.util.Mth; -import ru.bclib.util.MHelper; - -public class SDFPie extends SDFPrimitive { - private float sin; - private float cos; - private float radius; - - public SDFPie setAngle(float angle) { - this.sin = (float) Math.sin(angle); - this.cos = (float) Math.cos(angle); - return this; - } - - public SDFPie setRadius(float radius) { - this.radius = radius; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - float px = Math.abs(x); - float l = MHelper.length(px, y, z) - radius; - float m = MHelper.dot(px, z, sin, cos); - m = Mth.clamp(m, 0, radius); - m = MHelper.length(px - sin * m, z - cos * m); - return MHelper.max(l, m * (float) Math.signum(cos * px - sin * z)); - } -} diff --git a/src/main/java/ru/betterend/util/sdf/primitive/SDFPrimitive.java b/src/main/java/ru/betterend/util/sdf/primitive/SDFPrimitive.java deleted file mode 100644 index 533a7496..00000000 --- a/src/main/java/ru/betterend/util/sdf/primitive/SDFPrimitive.java +++ /dev/null @@ -1,39 +0,0 @@ -package ru.betterend.util.sdf.primitive; - -import java.util.function.Function; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import ru.betterend.util.sdf.SDF; - -public abstract class SDFPrimitive extends SDF { - protected Function placerFunction; - - public SDFPrimitive setBlock(Function placerFunction) { - this.placerFunction = placerFunction; - return this; - } - - public SDFPrimitive setBlock(BlockState state) { - this.placerFunction = (pos) -> { - return state; - }; - return this; - } - - public SDFPrimitive setBlock(Block block) { - this.placerFunction = (pos) -> { - return block.defaultBlockState(); - }; - return this; - } - - public BlockState getBlockState(BlockPos pos) { - return placerFunction.apply(pos); - } - - /*public abstract CompoundTag toNBT(CompoundTag root) { - - }*/ -} diff --git a/src/main/java/ru/betterend/util/sdf/primitive/SDFSphere.java b/src/main/java/ru/betterend/util/sdf/primitive/SDFSphere.java deleted file mode 100644 index 61aed9b9..00000000 --- a/src/main/java/ru/betterend/util/sdf/primitive/SDFSphere.java +++ /dev/null @@ -1,17 +0,0 @@ -package ru.betterend.util.sdf.primitive; - -import ru.bclib.util.MHelper; - -public class SDFSphere extends SDFPrimitive { - private float radius; - - public SDFSphere setRadius(float radius) { - this.radius = radius; - return this; - } - - @Override - public float getDistance(float x, float y, float z) { - return MHelper.length(x, y, z) - radius; - } -} diff --git a/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java b/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java index 4a3a44ba..d3837247 100644 --- a/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java +++ b/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java @@ -12,12 +12,12 @@ import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderBaseConfiguration; import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderConfiguration; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFCappedCone; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.util.BlocksHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFCappedCone; public class BiomeIslandFeature extends DefaultFeature { private static final MutableBlockPos CENTER = new MutableBlockPos(); diff --git a/src/main/java/ru/betterend/world/features/bushes/BushFeature.java b/src/main/java/ru/betterend/world/features/bushes/BushFeature.java index 1a82f2e0..d16626e7 100644 --- a/src/main/java/ru/betterend/world/features/bushes/BushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/BushFeature.java @@ -12,16 +12,16 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class BushFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java b/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java index e17ff92d..a0e0fab5 100644 --- a/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java @@ -13,16 +13,16 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class BushWithOuterFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java index 2bd735f4..1d00db6e 100644 --- a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java @@ -15,6 +15,12 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; @@ -23,12 +29,6 @@ import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class TenaneaBushFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java b/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java index 4a5f7a19..760ea87e 100644 --- a/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java @@ -9,13 +9,13 @@ import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFRotation; +import ru.bclib.sdf.primitive.SDFHexPrism; import ru.bclib.util.MHelper; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFRotation; -import ru.betterend.util.sdf.primitive.SDFHexPrism; import ru.betterend.world.features.DefaultFeature; public class BigAuroraCrystalFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java b/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java index fe0f70bc..501dbe52 100644 --- a/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java @@ -11,15 +11,15 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFRotation; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFCappedCone; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFRotation; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFCappedCone; import ru.betterend.world.features.DefaultFeature; public class FallenPillarFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java b/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java index 19038f7b..c2b5e4e9 100644 --- a/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java @@ -11,13 +11,13 @@ import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndFeatures; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.primitive.SDFSphere; public class FloatingSpireFeature extends SpireFeature { @Override diff --git a/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java b/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java index 73ea140e..948a2b57 100644 --- a/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java @@ -16,6 +16,20 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFCoordModify; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFInvert; +import ru.bclib.sdf.operator.SDFRotation; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSmoothUnion; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.operator.SDFUnion; +import ru.bclib.sdf.primitive.SDFCappedCone; +import ru.bclib.sdf.primitive.SDFFlatland; +import ru.bclib.sdf.primitive.SDFPrimitive; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.blocks.HydrothermalVentBlock; import ru.betterend.noise.OpenSimplexNoise; @@ -23,20 +37,6 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFCoordModify; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFInvert; -import ru.betterend.util.sdf.operator.SDFRotation; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSmoothUnion; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.operator.SDFUnion; -import ru.betterend.util.sdf.primitive.SDFCappedCone; -import ru.betterend.util.sdf.primitive.SDFFlatland; -import ru.betterend.util.sdf.primitive.SDFPrimitive; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class GeyserFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java b/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java index 5498e751..92b753b6 100644 --- a/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java @@ -11,13 +11,13 @@ import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFRotation; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.operator.SDFUnion; +import ru.bclib.sdf.primitive.SDFCappedCone; import ru.bclib.util.MHelper; import ru.betterend.registry.EndBlocks; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFRotation; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.operator.SDFUnion; -import ru.betterend.util.sdf.primitive.SDFCappedCone; import ru.betterend.world.features.DefaultFeature; public class IceStarFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java b/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java index 752774c3..352cc659 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java @@ -9,14 +9,14 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class ObsidianBoulderFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java b/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java index f97eaf53..c7f55638 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java @@ -11,17 +11,17 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFRotation; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFCappedCone; +import ru.bclib.sdf.primitive.SDFFlatland; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFRotation; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFCappedCone; -import ru.betterend.util.sdf.primitive.SDFFlatland; import ru.betterend.world.features.DefaultFeature; public class ObsidianPillarBasementFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java b/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java index 21629d97..332fa586 100644 --- a/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java @@ -8,12 +8,12 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFCoordModify; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFCoordModify; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class OreLayerFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java index 19d15c50..dd74a12c 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java @@ -15,16 +15,16 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFSmoothUnion; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndTags; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFSmoothUnion; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class SpireFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java index 80028542..7bc89bdc 100644 --- a/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java @@ -16,20 +16,20 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.PosInfo; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFScale; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.PosInfo; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFScale; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class DragonTreeFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java b/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java index 14150de1..9928cdb8 100644 --- a/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java @@ -17,14 +17,14 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.PosInfo; +import ru.bclib.sdf.SDF; import ru.bclib.util.MHelper; import ru.betterend.blocks.basis.AttachedBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.PosInfo; -import ru.betterend.util.sdf.SDF; import ru.betterend.world.features.DefaultFeature; public class GiganticAmaranitaFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java index 49b9be79..1bb9bafb 100644 --- a/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java @@ -15,19 +15,19 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.phys.AABB; +import ru.bclib.sdf.PosInfo; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFRotation; +import ru.bclib.sdf.operator.SDFScale; +import ru.bclib.sdf.operator.SDFSmoothUnion; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.operator.SDFUnion; import ru.bclib.util.MHelper; import ru.betterend.blocks.HelixTreeLeavesBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.PosInfo; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFRotation; -import ru.betterend.util.sdf.operator.SDFScale; -import ru.betterend.util.sdf.operator.SDFSmoothUnion; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.operator.SDFUnion; import ru.betterend.world.features.DefaultFeature; public class HelixTreeFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java index 2e256be4..231c3cb9 100644 --- a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java @@ -14,18 +14,18 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFFlatWave; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSmoothUnion; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.blocks.JellyshroomCapBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFFlatWave; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSmoothUnion; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class JellyshroomFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java b/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java index b0ad1af9..1f0fc6bb 100644 --- a/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java @@ -15,18 +15,18 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.PosInfo; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.PosInfo; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class LacugroveFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java b/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java index 6562cdcd..cdf9ec3b 100644 --- a/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java @@ -16,6 +16,13 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFScale; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; @@ -25,13 +32,6 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFScale; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class LucerniaFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java b/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java index 92f8242a..4a38f26e 100644 --- a/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java @@ -13,6 +13,19 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFBinary; +import ru.bclib.sdf.operator.SDFCoordModify; +import ru.bclib.sdf.operator.SDFFlatWave; +import ru.bclib.sdf.operator.SDFScale; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSmoothUnion; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.operator.SDFUnion; +import ru.bclib.sdf.primitive.SDFCappedCone; +import ru.bclib.sdf.primitive.SDFPrimitive; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.blocks.MossyGlowshroomCapBlock; import ru.betterend.blocks.basis.FurBlock; @@ -21,19 +34,6 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFBinary; -import ru.betterend.util.sdf.operator.SDFCoordModify; -import ru.betterend.util.sdf.operator.SDFFlatWave; -import ru.betterend.util.sdf.operator.SDFScale; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSmoothUnion; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.operator.SDFUnion; -import ru.betterend.util.sdf.primitive.SDFCappedCone; -import ru.betterend.util.sdf.primitive.SDFPrimitive; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class MossyGlowshroomFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java index 5722da0a..e0c42f3e 100644 --- a/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java @@ -15,19 +15,19 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.PosInfo; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.PosInfo; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class PythadendronTreeFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java index ac86a78b..a3075c19 100644 --- a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java @@ -16,6 +16,13 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFDisplacement; +import ru.bclib.sdf.operator.SDFScale; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; @@ -25,13 +32,6 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFDisplacement; -import ru.betterend.util.sdf.operator.SDFScale; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class TenaneaFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java index 1ed027d2..90bfb47e 100644 --- a/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java @@ -16,6 +16,15 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFFlatWave; +import ru.bclib.sdf.operator.SDFScale; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSmoothUnion; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.operator.SDFUnion; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.blocks.UmbrellaTreeClusterBlock; import ru.betterend.blocks.UmbrellaTreeMembraneBlock; @@ -23,15 +32,6 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFFlatWave; -import ru.betterend.util.sdf.operator.SDFScale; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSmoothUnion; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.operator.SDFUnion; -import ru.betterend.util.sdf.primitive.SDFSphere; import ru.betterend.world.features.DefaultFeature; public class UmbrellaTreeFeature extends DefaultFeature { diff --git a/src/main/java/ru/betterend/world/generator/IslandLayer.java b/src/main/java/ru/betterend/world/generator/IslandLayer.java index 56c11ab5..d7858317 100644 --- a/src/main/java/ru/betterend/world/generator/IslandLayer.java +++ b/src/main/java/ru/betterend/world/generator/IslandLayer.java @@ -8,14 +8,14 @@ import java.util.Random; import com.google.common.collect.Maps; import net.minecraft.core.BlockPos; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFRadialNoiseMap; +import ru.bclib.sdf.operator.SDFScale; +import ru.bclib.sdf.operator.SDFSmoothUnion; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.primitive.SDFCappedCone; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFRadialNoiseMap; -import ru.betterend.util.sdf.operator.SDFScale; -import ru.betterend.util.sdf.operator.SDFSmoothUnion; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.primitive.SDFCappedCone; public class IslandLayer { private static final Random RANDOM = new Random(); diff --git a/src/main/java/ru/betterend/world/structures/StructureWorld.java b/src/main/java/ru/betterend/world/structures/StructureWorld.java deleted file mode 100644 index 5ae3f4f3..00000000 --- a/src/main/java/ru/betterend/world/structures/StructureWorld.java +++ /dev/null @@ -1,170 +0,0 @@ -package ru.betterend.world.structures; - -import java.util.Map; - -import com.google.common.collect.Maps; - -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.NbtUtils; -import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.WorldGenLevel; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.chunk.ChunkAccess; -import net.minecraft.world.level.levelgen.structure.BoundingBox; - -public class StructureWorld { - private Map parts = Maps.newHashMap(); - private ChunkPos lastPos; - private Part lastPart; - private int minX = Integer.MAX_VALUE; - private int minY = Integer.MAX_VALUE; - private int minZ = Integer.MAX_VALUE; - private int maxX = Integer.MIN_VALUE; - private int maxY = Integer.MIN_VALUE; - private int maxZ = Integer.MIN_VALUE; - - public StructureWorld() {} - - public StructureWorld(CompoundTag tag) { - minX = tag.getInt("minX"); - maxX = tag.getInt("maxX"); - minY = tag.getInt("minY"); - maxY = tag.getInt("maxY"); - minZ = tag.getInt("minZ"); - maxZ = tag.getInt("maxZ"); - - ListTag map = tag.getList("parts", 10); - map.forEach((element) -> { - CompoundTag compound = (CompoundTag) element; - Part part = new Part(compound); - int x = compound.getInt("x"); - int z = compound.getInt("z"); - parts.put(new ChunkPos(x, z), part); - }); - } - - public void setBlock(BlockPos pos, BlockState state) { - ChunkPos cPos = new ChunkPos(pos); - - if (cPos.equals(lastPos)) { - lastPart.addBlock(pos, state); - return; - } - - Part part = parts.get(cPos); - if (part == null) { - part = new Part(); - parts.put(cPos, part); - - if (cPos.x < minX) minX = cPos.x; - if (cPos.x > maxX) maxX = cPos.x; - if (cPos.z < minZ) minZ = cPos.z; - if (cPos.z > maxZ) maxZ = cPos.z; - } - if (pos.getY() < minY) minY = pos.getY(); - if (pos.getY() > maxY) maxY = pos.getY(); - part.addBlock(pos, state); - - lastPos = cPos; - lastPart = part; - } - - public boolean placeChunk(WorldGenLevel world, ChunkPos chunkPos) { - Part part = parts.get(chunkPos); - if (part != null) { - ChunkAccess chunk = world.getChunk(chunkPos.x, chunkPos.z); - part.placeChunk(chunk); - return true; - } - return false; - } - - public CompoundTag toBNT() { - CompoundTag tag = new CompoundTag(); - tag.putInt("minX", minX); - tag.putInt("maxX", maxX); - tag.putInt("minY", minY); - tag.putInt("maxY", maxY); - tag.putInt("minZ", minZ); - tag.putInt("maxZ", maxZ); - ListTag map = new ListTag(); - tag.put("parts", map); - parts.forEach((pos, part) -> { - map.add(part.toNBT(pos.x, pos.z)); - }); - return tag; - } - - public BoundingBox getBounds() { - if (minX == Integer.MAX_VALUE || maxX == Integer.MIN_VALUE || minZ == Integer.MAX_VALUE || maxZ == Integer.MIN_VALUE) { - return BoundingBox.getUnknownBox(); - } - return new BoundingBox(minX << 4, minY, minZ << 4, (maxX << 4) | 15, maxY, (maxZ << 4) | 15); - } - - private static final class Part { - Map blocks = Maps.newHashMap(); - - public Part() {} - - public Part(CompoundTag tag) { - ListTag map = tag.getList("blocks", 10); - ListTag map2 = tag.getList("states", 10); - BlockState[] states = new BlockState[map2.size()]; - for (int i = 0; i < states.length; i++) { - states[i] = NbtUtils.readBlockState((CompoundTag) map2.get(i)); - } - - map.forEach((element) -> { - CompoundTag block = (CompoundTag) element; - BlockPos pos = NbtUtils.readBlockPos(block.getCompound("pos")); - int stateID = block.getInt("state"); - BlockState state = stateID < states.length ? states[stateID] : Block.stateById(stateID); - blocks.put(pos, state); - }); - } - - void addBlock(BlockPos pos, BlockState state) { - BlockPos inner = new BlockPos(pos.getX() & 15, pos.getY(), pos.getZ() & 15); - blocks.put(inner, state); - } - - void placeChunk(ChunkAccess chunk) { - blocks.forEach((pos, state) -> { - chunk.setBlockState(pos, state, false); - }); - } - - CompoundTag toNBT(int x, int z) { - CompoundTag tag = new CompoundTag(); - tag.putInt("x", x); - tag.putInt("z", z); - ListTag map = new ListTag(); - tag.put("blocks", map); - ListTag stateMap = new ListTag(); - tag.put("states", stateMap); - - int[] id = new int[1]; - Map states = Maps.newHashMap(); - - blocks.forEach((pos, state) -> { - int stateID = states.getOrDefault(states, -1); - if (stateID < 0) { - stateID = id[0] ++; - states.put(state, stateID); - stateMap.add(NbtUtils.writeBlockState(state)); - } - - CompoundTag block = new CompoundTag(); - block.put("pos", NbtUtils.writeBlockPos(pos)); - block.putInt("state", stateID); - map.add(block); - }); - - return tag; - } - } -} diff --git a/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java b/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java index 267ac171..b60dac4a 100644 --- a/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java @@ -16,13 +16,13 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.StructureStart; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureManager; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFRotation; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.operator.SDFUnion; +import ru.bclib.sdf.primitive.SDFCappedCone; import ru.bclib.util.MHelper; import ru.betterend.registry.EndBlocks; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFRotation; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.operator.SDFUnion; -import ru.betterend.util.sdf.primitive.SDFCappedCone; import ru.betterend.world.structures.piece.VoxelPiece; public class GiantIceStarStructure extends SDFStructureFeature { diff --git a/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java b/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java index daa46b47..ab990b64 100644 --- a/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java @@ -7,6 +7,20 @@ import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import ru.bclib.sdf.SDF; +import ru.bclib.sdf.operator.SDFBinary; +import ru.bclib.sdf.operator.SDFCoordModify; +import ru.bclib.sdf.operator.SDFFlatWave; +import ru.bclib.sdf.operator.SDFRound; +import ru.bclib.sdf.operator.SDFScale; +import ru.bclib.sdf.operator.SDFScale3D; +import ru.bclib.sdf.operator.SDFSmoothUnion; +import ru.bclib.sdf.operator.SDFSubtraction; +import ru.bclib.sdf.operator.SDFTranslate; +import ru.bclib.sdf.operator.SDFUnion; +import ru.bclib.sdf.primitive.SDFCappedCone; +import ru.bclib.sdf.primitive.SDFPrimitive; +import ru.bclib.sdf.primitive.SDFSphere; import ru.bclib.util.MHelper; import ru.betterend.blocks.MossyGlowshroomCapBlock; import ru.betterend.blocks.basis.FurBlock; @@ -14,20 +28,6 @@ import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; -import ru.betterend.util.sdf.SDF; -import ru.betterend.util.sdf.operator.SDFBinary; -import ru.betterend.util.sdf.operator.SDFCoordModify; -import ru.betterend.util.sdf.operator.SDFFlatWave; -import ru.betterend.util.sdf.operator.SDFRound; -import ru.betterend.util.sdf.operator.SDFScale; -import ru.betterend.util.sdf.operator.SDFScale3D; -import ru.betterend.util.sdf.operator.SDFSmoothUnion; -import ru.betterend.util.sdf.operator.SDFSubtraction; -import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.operator.SDFUnion; -import ru.betterend.util.sdf.primitive.SDFCappedCone; -import ru.betterend.util.sdf.primitive.SDFPrimitive; -import ru.betterend.util.sdf.primitive.SDFSphere; public class GiantMossyGlowshroomStructure extends SDFStructureFeature { @Override diff --git a/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java b/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java index 57d2fb51..40e28a3c 100644 --- a/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java +++ b/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java @@ -12,8 +12,8 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.StructureStart; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureManager; +import ru.bclib.sdf.SDF; import ru.bclib.util.MHelper; -import ru.betterend.util.sdf.SDF; import ru.betterend.world.structures.piece.VoxelPiece; public abstract class SDFStructureFeature extends FeatureBaseStructure { diff --git a/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java b/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java index 1837d3eb..08a4a100 100644 --- a/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java @@ -11,8 +11,8 @@ import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureManager; +import ru.bclib.world.structures.StructureWorld; import ru.betterend.registry.EndStructures; -import ru.betterend.world.structures.StructureWorld; public class VoxelPiece extends BasePiece { private StructureWorld world;