LoMines/src/main/java/dev/loki/lomines/block/BlockSetter.java

37 lines
1.1 KiB
Java

package dev.loki.lomines.block;
import dev.loki.lomines.util.location.geo.Cuboid;
import org.bukkit.Location;
import java.util.List;
import java.util.function.IntConsumer;
/**
* Abstract base class for block setting strategies.
* Provides a template for filling mine regions with blocks.
*
* <p>Implementations:</p>
* <ul>
* <li>BukkitBlockSetter - For vanilla Minecraft blocks</li>
* <li>OraxenBlockSetter - For Oraxen custom blocks</li>
* <li>ItemsAdderBlockSetter - For ItemsAdder custom blocks</li>
* </ul>
*
* <p>This is a placeholder that will be fully implemented in task 2.7.</p>
*/
public abstract class BlockSetter {
/**
* Fills a cuboid region with blocks asynchronously.
* The callback is invoked in the main thread after completion.
*
* @param region The region to fill
* @param callback Called with the number of blocks set when complete
*/
public abstract void fill(Cuboid region, IntConsumer callback);
/**
* Places random weighted blocks only at the given locations (mask mode).
*/
public abstract void fillAtLocations(List<Location> locations, IntConsumer callback);
}