Replace BlockModifier.java to BlockSetter & BlockGetter

This commit is contained in:
TheMode 2021-05-28 15:11:55 +02:00
parent 41f769b8b2
commit cb8ad02c0d
4 changed files with 27 additions and 29 deletions

View File

@ -19,7 +19,9 @@ import net.minestom.server.event.instance.AddEntityToInstanceEvent;
import net.minestom.server.event.instance.InstanceTickEvent; import net.minestom.server.event.instance.InstanceTickEvent;
import net.minestom.server.event.instance.RemoveEntityFromInstanceEvent; import net.minestom.server.event.instance.RemoveEntityFromInstanceEvent;
import net.minestom.server.instance.block.Block; import net.minestom.server.instance.block.Block;
import net.minestom.server.instance.block.BlockGetter;
import net.minestom.server.instance.block.BlockManager; import net.minestom.server.instance.block.BlockManager;
import net.minestom.server.instance.block.BlockSetter;
import net.minestom.server.network.packet.server.play.BlockActionPacket; import net.minestom.server.network.packet.server.play.BlockActionPacket;
import net.minestom.server.network.packet.server.play.TimeUpdatePacket; import net.minestom.server.network.packet.server.play.TimeUpdatePacket;
import net.minestom.server.storage.StorageLocation; import net.minestom.server.storage.StorageLocation;
@ -55,7 +57,7 @@ import java.util.function.Consumer;
* you need to be sure to signal the {@link UpdateManager} of the changes using * you need to be sure to signal the {@link UpdateManager} of the changes using
* {@link UpdateManager#signalChunkLoad(Chunk)} and {@link UpdateManager#signalChunkUnload(Chunk)}. * {@link UpdateManager#signalChunkLoad(Chunk)} and {@link UpdateManager#signalChunkUnload(Chunk)}.
*/ */
public abstract class Instance implements BlockModifier, Tickable, EventHandler, DataContainer, PacketGroupingAudience { public abstract class Instance implements BlockGetter, BlockSetter, Tickable, EventHandler, DataContainer, PacketGroupingAudience {
protected static final BlockManager BLOCK_MANAGER = MinecraftServer.getBlockManager(); protected static final BlockManager BLOCK_MANAGER = MinecraftServer.getBlockManager();
protected static final UpdateManager UPDATE_MANAGER = MinecraftServer.getUpdateManager(); protected static final UpdateManager UPDATE_MANAGER = MinecraftServer.getUpdateManager();
@ -533,14 +535,7 @@ public abstract class Instance implements BlockModifier, Tickable, EventHandler,
unloadChunk(chunk); unloadChunk(chunk);
} }
/** @Override
* Gets Block type from given coordinates.
*
* @param x x coordinate
* @param y y coordinate
* @param z z coordinate
* @return Block at given position.
*/
public @NotNull Block getBlock(int x, int y, int z) { public @NotNull Block getBlock(int x, int y, int z) {
final Chunk chunk = getChunkAt(x, z); final Chunk chunk = getChunkAt(x, z);
Check.notNull(chunk, "The chunk at {0}:{1} is not loaded", x, z); Check.notNull(chunk, "The chunk at {0}:{1} is not loaded", x, z);
@ -549,16 +544,6 @@ public abstract class Instance implements BlockModifier, Tickable, EventHandler,
} }
} }
/**
* Gets block from given position.
*
* @param position position to get from
* @return Block at given position.
*/
public @NotNull Block getBlock(@NotNull BlockPosition position) {
return getBlock(position.getX(), position.getY(), position.getZ());
}
/** /**
* Sends a {@link BlockActionPacket} for all the viewers of the specific position. * Sends a {@link BlockActionPacket} for all the viewers of the specific position.
* *

View File

@ -1,8 +1,8 @@
package net.minestom.server.instance.batch; package net.minestom.server.instance.batch;
import net.minestom.server.MinecraftServer; import net.minestom.server.MinecraftServer;
import net.minestom.server.instance.BlockModifier;
import net.minestom.server.instance.Instance; import net.minestom.server.instance.Instance;
import net.minestom.server.instance.block.BlockSetter;
import net.minestom.server.utils.thread.MinestomThread; import net.minestom.server.utils.thread.MinestomThread;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -27,7 +27,7 @@ import java.util.concurrent.ExecutorService;
* @see AbsoluteBlockBatch * @see AbsoluteBlockBatch
* @see RelativeBlockBatch * @see RelativeBlockBatch
*/ */
public interface Batch<C> extends BlockModifier { public interface Batch<C> extends BlockSetter {
ExecutorService BLOCK_BATCH_POOL = new MinestomThread( ExecutorService BLOCK_BATCH_POOL = new MinestomThread(
MinecraftServer.THREAD_COUNT_BLOCK_BATCH, MinecraftServer.THREAD_COUNT_BLOCK_BATCH,

View File

@ -0,0 +1,18 @@
package net.minestom.server.instance.block;
import net.minestom.server.utils.BlockPosition;
import org.jetbrains.annotations.NotNull;
public interface BlockGetter {
@NotNull Block getBlock(int x, int y, int z);
/**
* Gets block from given position.
*
* @param blockPosition position to get the block from
* @return Block at given position.
*/
default @NotNull Block getBlock(@NotNull BlockPosition blockPosition) {
return getBlock(blockPosition.getX(), blockPosition.getY(), blockPosition.getZ());
}
}

View File

@ -1,9 +1,7 @@
package net.minestom.server.instance; package net.minestom.server.instance.block;
import net.minestom.server.MinecraftServer; import net.minestom.server.instance.Instance;
import net.minestom.server.instance.batch.Batch; import net.minestom.server.instance.batch.Batch;
import net.minestom.server.instance.block.Block;
import net.minestom.server.instance.block.BlockManager;
import net.minestom.server.utils.BlockPosition; import net.minestom.server.utils.BlockPosition;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -12,10 +10,7 @@ import org.jetbrains.annotations.NotNull;
* <p> * <p>
* Notably used by {@link Instance}, {@link Batch}. * Notably used by {@link Instance}, {@link Batch}.
*/ */
public interface BlockModifier { public interface BlockSetter {
BlockManager BLOCK_MANAGER = MinecraftServer.getBlockManager();
void setBlock(int x, int y, int z, @NotNull Block block); void setBlock(int x, int y, int z, @NotNull Block block);
default void setBlock(@NotNull BlockPosition blockPosition, @NotNull Block block) { default void setBlock(@NotNull BlockPosition blockPosition, @NotNull Block block) {