mirror of
https://github.com/Minestom/Minestom.git
synced 2024-09-29 23:17:59 +02:00
115 lines
3.3 KiB
Java
115 lines
3.3 KiB
Java
package net.minestom.server.instance;
|
|
|
|
import net.minestom.server.coordinate.Point;
|
|
import net.minestom.server.entity.Player;
|
|
import net.minestom.server.instance.block.Block;
|
|
import net.minestom.server.instance.block.BlockHandler;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
import java.util.Collection;
|
|
import java.util.UUID;
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
|
/**
|
|
* The {@link SharedInstance} is an instance that shares the same chunks as its linked {@link InstanceContainer},
|
|
* entities are separated.
|
|
*/
|
|
public class SharedInstance extends Instance {
|
|
private final InstanceContainer instanceContainer;
|
|
|
|
public SharedInstance(@NotNull UUID uniqueId, @NotNull InstanceContainer instanceContainer) {
|
|
super(uniqueId, instanceContainer.getDimensionType());
|
|
this.instanceContainer = instanceContainer;
|
|
}
|
|
|
|
@Override
|
|
public void setBlock(int x, int y, int z, @NotNull Block block) {
|
|
this.instanceContainer.setBlock(x, y, z, block);
|
|
}
|
|
|
|
@Override
|
|
public boolean placeBlock(@NotNull BlockHandler.Placement placement) {
|
|
return instanceContainer.placeBlock(placement);
|
|
}
|
|
|
|
@Override
|
|
public boolean breakBlock(@NotNull Player player, @NotNull Point blockPosition) {
|
|
return instanceContainer.breakBlock(player, blockPosition);
|
|
}
|
|
|
|
@Override
|
|
public @NotNull CompletableFuture<Chunk> loadChunk(int chunkX, int chunkZ) {
|
|
return instanceContainer.loadChunk(chunkX, chunkZ);
|
|
}
|
|
|
|
@Override
|
|
public @NotNull CompletableFuture<Chunk> loadOptionalChunk(int chunkX, int chunkZ) {
|
|
return instanceContainer.loadOptionalChunk(chunkX, chunkZ);
|
|
}
|
|
|
|
@Override
|
|
public void unloadChunk(@NotNull Chunk chunk) {
|
|
instanceContainer.unloadChunk(chunk);
|
|
}
|
|
|
|
@Override
|
|
public Chunk getChunk(int chunkX, int chunkZ) {
|
|
return instanceContainer.getChunk(chunkX, chunkZ);
|
|
}
|
|
|
|
@Override
|
|
public @NotNull CompletableFuture<Void> saveInstance() {
|
|
return instanceContainer.saveInstance();
|
|
}
|
|
|
|
@Override
|
|
public @NotNull CompletableFuture<Void> saveChunkToStorage(@NotNull Chunk chunk) {
|
|
return instanceContainer.saveChunkToStorage(chunk);
|
|
}
|
|
|
|
@Override
|
|
public @NotNull CompletableFuture<Void> saveChunksToStorage() {
|
|
return instanceContainer.saveChunksToStorage();
|
|
}
|
|
|
|
@Override
|
|
public void setChunkGenerator(ChunkGenerator chunkGenerator) {
|
|
this.instanceContainer.setChunkGenerator(chunkGenerator);
|
|
}
|
|
|
|
@Override
|
|
public ChunkGenerator getChunkGenerator() {
|
|
return instanceContainer.getChunkGenerator();
|
|
}
|
|
|
|
@NotNull
|
|
@Override
|
|
public Collection<Chunk> getChunks() {
|
|
return instanceContainer.getChunks();
|
|
}
|
|
|
|
@Override
|
|
public void enableAutoChunkLoad(boolean enable) {
|
|
instanceContainer.enableAutoChunkLoad(enable);
|
|
}
|
|
|
|
@Override
|
|
public boolean hasEnabledAutoChunkLoad() {
|
|
return instanceContainer.hasEnabledAutoChunkLoad();
|
|
}
|
|
|
|
@Override
|
|
public boolean isInVoid(@NotNull Point point) {
|
|
return instanceContainer.isInVoid(point);
|
|
}
|
|
|
|
/**
|
|
* Gets the {@link InstanceContainer} from where this instance takes its chunks from.
|
|
*
|
|
* @return the associated {@link InstanceContainer}
|
|
*/
|
|
public @NotNull InstanceContainer getInstanceContainer() {
|
|
return instanceContainer;
|
|
}
|
|
}
|