Skip to content

Commit

Permalink
RadiusUtils#forBlockPosInLine
Browse files Browse the repository at this point in the history
Some Fixes
  • Loading branch information
FirstMegaGame4 committed Jun 30, 2024
1 parent 02bf7aa commit 6e37741
Show file tree
Hide file tree
Showing 22 changed files with 34 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.mmodding.mmodding_lib.library.utils.InternalOf;
import org.quiltmc.qsl.base.api.util.TriState;

@InternalOf(targets = AdvancedBlockSettings.class)
@InternalOf(AdvancedBlockSettings.class)
public interface AbstractBlockSettingsDuckInterface {

TriState mmodding_lib$getTranslucent();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import net.minecraft.block.entity.BlockEntityType;
import org.quiltmc.qsl.base.api.event.Event;

@InternalOf(targets = BlockEntityTypeBlockSupportCallback.class)
@InternalOf(BlockEntityTypeBlockSupportCallback.class)
public interface BlockEntityTypeDuckInterface {

Event<BlockEntityTypeBlockSupportCallback> mmodding_lib$supportBlocksCallback();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import net.minecraft.util.Holder;
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;

@InternalOf(targets = CustomVeinType.class)
@InternalOf(CustomVeinType.class)
public interface ChunkNoiseSamplerDuckInterface {

Holder<ChunkGeneratorSettings> mmodding_lib$getSettingsHolder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.mmodding.mmodding_lib.library.utils.InternalOf;
import com.mmodding.mmodding_lib.states.readable.ReadableStellarStatuses;

@InternalOf(targets = StellarObject.class)
@InternalOf(StellarObject.class)
public interface ClientWorldDuckInterface {

ReadableStellarStatuses mmodding_lib$getStellarStatusesAccess();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;

@InternalOf(targets = CustomSquaredPortalBlock.class)
@InternalOf(CustomSquaredPortalBlock.class)
public interface EntityDuckInterface {

boolean mmodding_lib$isInCustomPortal();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.mmodding.mmodding_lib.library.utils.InternalOf;
import net.minecraft.block.BlockState;

@InternalOf(targets = FallingBlockInteractionData.class)
@InternalOf(FallingBlockInteractionData.class)
public interface FallingBlockEntityDuckInterface {

BlockState mmodding_lib$getInitialBlockState();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import java.util.function.IntFunction;

@InternalOf(targets = CustomFluidBlock.class)
@InternalOf(CustomFluidBlock.class)
public interface FlowableFluidDuckInterface {

void mmodding_lib$putCustomStates(FluidState stillState, IntFunction<FluidState> flowingStates);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import net.minecraft.util.registry.RegistryKey;
import net.minecraft.world.World;

@InternalOf(targets = DifferedSeeds.class)
@InternalOf(DifferedSeeds.class)
public interface GeneratorOptionsDuckInterface {

void mmodding_lib$fillDimensionSeedAddendsNbt(NbtList list);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import java.util.List;

@InternalOf(targets = StuckArrowDisplay.class)
@InternalOf(StuckArrowDisplay.class)
public interface LivingEntityDuckInterface {

List<Identifier> mmodding_lib$getStuckArrowTypes();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import net.minecraft.util.math.Direction;
import net.minecraft.world.WorldAccess;

@InternalOf(targets = CustomSquaredPortalBlock.class)
@InternalOf(CustomSquaredPortalBlock.class)
public interface NetherPortalBlockDuckInterface {

BlockState mmodding_lib$getAbstractStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

import java.util.Optional;

@InternalOf(targets = CustomSquaredPortal.class)
@InternalOf(CustomSquaredPortal.class)
public interface PortalForcerDuckInterface {

void mmodding_lib$setUseCustomPortalElements(boolean useCustomPortalElements);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.mmodding.mmodding_lib.library.utils.InternalOf;
import net.minecraft.entity.Entity;

@InternalOf(targets = CustomEntityType.class)
@InternalOf( CustomEntityType.class)
public interface QuiltEntityTypeBuilderDuckInterface<T extends Entity> {

CustomEntityType<T> mmodding_lib$buildCustom();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

import java.util.Optional;

@InternalOf(targets = CustomSquaredPortal.class)
@InternalOf(CustomSquaredPortal.class)
public interface ServerPlayerDuckInterface {

Optional<BlockLocating.Rectangle> mmodding_lib$getCustomPortalRect(ServerWorld destWorld, BlockPos destPos, WorldBorder worldBorder);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.mmodding.mmodding_lib.states.persistant.StellarStatuses;
import net.minecraft.nbt.NbtCompound;

@InternalOf(targets = StellarStatuses.class)
@InternalOf(StellarStatuses.class)
public interface ServerWorldDuckInterface {

StellarStatuses mmodding_lib$createStellarStatuses();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import java.util.HashMap;
import java.util.Map;

@InternalOf(targets = ConfigScreen.class)
@InternalOf(ConfigScreen.class)
public class ModMenuApiImpl implements ModMenuApi {

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;

@EnvRestriction(side = EnvRestriction.Side.SERVER_COMMON)
@EnvRestriction(EnvRestriction.Side.SERVER_COMMON)
public interface GlintPackView {

static GlintPackView of(ItemStack stack) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
@Target({ElementType.TYPE, ElementType.TYPE_USE, ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PACKAGE})
public @interface EnvRestriction {

Side side() default Side.COMMON;
Side value() default Side.COMMON;

enum Side {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@
@Target({ElementType.TYPE, ElementType.TYPE_USE, ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PACKAGE})
public @interface InternalOf {

Class<?>[] targets();
Class<?>[] value();
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.mmodding.mmodding_lib.library.utils;

public interface QuadConsumer<K, V, S, T> {
public interface QuartConsumer<K, V, S, T> {

void accept(K k, V v, S s, T t);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,23 @@

import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;

import java.util.HashSet;
import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;

public class RadiusUtils {

public static void forBlockPosInLine(BlockPos pos1, BlockPos pos2, Consumer<? super BlockPos> consumer) {
Vec3d vector = Vec3d.ofCenter(pos1).relativize(Vec3d.ofCenter(pos2)).normalize();
Vec3d mutable = Vec3d.ofCenter(pos1);
do {
mutable = mutable.add(vector);
consumer.accept(new BlockPos(mutable));
} while (!new BlockPos(mutable).equals(pos2));
}

public static void forBlockPosInCubicRadius(BlockPos pos, int radius, Consumer<? super BlockPos> execute) {
BlockPos.iterate(
pos.getX() - radius,
Expand All @@ -21,11 +30,11 @@ public static void forBlockPosInCubicRadius(BlockPos pos, int radius, Consumer<?
).forEach(execute);
}

public static void iterateFromCenterInSquare(BlockPos center, int radius, Consumer<BlockPos> action) {
public static void iterateFromCenterInSquare(BlockPos center, int radius, Consumer<? super BlockPos> action) {
RadiusUtils.iterateFromCenter(center, radius, radius, radius, action);
}

public static void iterateFromCenter(BlockPos center, int radiusX, int radiusY, int radiusZ, Consumer<BlockPos> action) {
public static void iterateFromCenter(BlockPos center, int radiusX, int radiusY, int radiusZ, Consumer<? super BlockPos> action) {
Set<BlockPos> alreadyChecked = new HashSet<>();
BlockPos firstExtremis = center.add(radiusX, radiusY, radiusZ);
BlockPos lastExtremis = center.add(-radiusX, -radiusY, -radiusZ);
Expand All @@ -34,7 +43,7 @@ public static void iterateFromCenter(BlockPos center, int radiusX, int radiusY,
}
}

private static void checkActionNext(BlockPos pos, Direction excluded, Set<BlockPos> alreadyChecked, BlockPos firstExtremis, BlockPos lastExtremis, Consumer<BlockPos> action) {
private static void checkActionNext(BlockPos pos, Direction excluded, Set<BlockPos> alreadyChecked, BlockPos firstExtremis, BlockPos lastExtremis, Consumer<? super BlockPos> action) {
if (alreadyChecked.stream().noneMatch(current -> current.equals(pos))) {
BlockPos firstSubtract = pos.subtract(firstExtremis);
BlockPos lastSubtract = pos.subtract(lastExtremis);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public void forEachThird(BiConsumer<? super K, ? super V3> action) {
this.forEach((key, value) -> action.accept(key, value.getRight()));
}

public void forEach(QuadConsumer<? super K, ? super V1, ? super V2, ? super V3> action) {
public void forEach(QuartConsumer<? super K, ? super V1, ? super V2, ? super V3> action) {
this.forEach((key, value) -> action.accept(key, value.getLeft(), value.getMiddle(), value.getRight()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,5 @@ static <V1, V2, V3> Triple<V1, V2, V3> emptyValue() {

void forEachThird(BiConsumer<? super K, ? super V3> action);

void forEach(QuadConsumer<? super K, ? super V1, ? super V2, ? super V3> action);
void forEach(QuartConsumer<? super K, ? super V1, ? super V2, ? super V3> action);
}

0 comments on commit 6e37741

Please sign in to comment.