下面列出了怎么用net.minecraft.util.ClassInheritanceMultiMap的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Checks for the activation state of all entities in this chunk.
*
* @param chunk
*/
private static void activateChunkEntities(Chunk chunk) {
for (ClassInheritanceMultiMap<Entity> slice : chunk.entityLists) {
for (Entity entity : slice) {
if (entity == null) {
continue;
}
if (MinecraftServer.currentTick > entity.activatedTick) {
if (entity.defaultActivationState) {
entity.activatedTick = MinecraftServer.currentTick;
continue;
}
switch (entity.activationType) {
case 1:
if (monsterBB.intersects(entity.getEntityBoundingBox())) {
entity.activatedTick = MinecraftServer.currentTick;
}
break;
case 2:
if (animalBB.intersects(entity.getEntityBoundingBox())) {
entity.activatedTick = MinecraftServer.currentTick;
}
break;
case 3:
default:
if (miscBB.intersects(entity.getEntityBoundingBox())) {
entity.activatedTick = MinecraftServer.currentTick;
}
}
}
}
}
}
public void onChunkUnload(Chunk chunk){
for(ClassInheritanceMultiMap<Entity> entities : chunk.getEntityLists()) {
for(EntityMinecart cart : entities.getByClass(EntityMinecart.class)) {
removeCart(cart);
}
}
}
private static boolean unloadChunk(net.minecraft.world.chunk.Chunk chunk) {
net.minecraft.world.World mcWorld = chunk.getWorld();
ChunkProviderServer chunkProviderServer = (ChunkProviderServer) chunk.getWorld().getChunkProvider();
boolean saveChunk = false;
if (chunk.needsSaving(true)) {
saveChunk = true;
}
for (ClassInheritanceMultiMap<Entity> classinheritancemultimap : chunk.getEntityLists())
{
chunk.getWorld().unloadEntities(classinheritancemultimap);
}
if (saveChunk) {
saveChunkData(chunkProviderServer, chunk);
}
chunkProviderServer.id2ChunkMap.remove(ChunkPos.asLong(chunk.x, chunk.z));
((ChunkBridge) chunk).bridge$setScheduledForUnload(-1);
org.spongepowered.api.world.Chunk spongeChunk = (org.spongepowered.api.world.Chunk) chunk;
for (Direction direction : CARDINAL_SET) {
Vector3i neighborPosition = spongeChunk.getPosition().add(direction.asBlockOffset());
ChunkProviderBridge spongeChunkProvider = (ChunkProviderBridge) mcWorld.getChunkProvider();
net.minecraft.world.chunk.Chunk neighbor = spongeChunkProvider.bridge$getLoadedChunkWithoutMarkingActive(neighborPosition.getX(),
neighborPosition.getZ());
if (neighbor != null) {
int neighborIndex = directionToIndex(direction);
int oppositeNeighborIndex = directionToIndex(direction.getOpposite());
((ChunkBridge) spongeChunk).bridge$setNeighborChunk(neighborIndex, null);
((ChunkBridge) neighbor).bridge$setNeighborChunk(oppositeNeighborIndex, null);
}
}
return true;
}
public boolean hasEntities(Chunk nmsChunk) {
ClassInheritanceMultiMap<Entity>[] entities = nmsChunk.getEntityLists();
for (int i = 0; i < entities.length; i++) {
ClassInheritanceMultiMap<Entity> slice = entities[i];
if (slice != null && !slice.isEmpty()) {
return true;
}
}
return false;
}
public boolean hasEntities(Chunk nmsChunk) {
ClassInheritanceMultiMap<Entity>[] entities = nmsChunk.getEntityLists();
for (int i = 0; i < entities.length; i++) {
ClassInheritanceMultiMap<Entity> slice = entities[i];
if (slice != null && !slice.isEmpty()) {
return true;
}
}
return false;
}
public boolean hasEntities(Chunk nmsChunk) {
ClassInheritanceMultiMap<Entity>[] entities = nmsChunk.getEntityLists();
for (int i = 0; i < entities.length; i++) {
ClassInheritanceMultiMap<Entity> slice = entities[i];
if (slice != null && !slice.isEmpty()) {
return true;
}
}
return false;
}
public boolean hasEntities(Chunk nmsChunk) {
ClassInheritanceMultiMap<Entity>[] entities = nmsChunk.getEntityLists();
for (int i = 0; i < entities.length; i++) {
ClassInheritanceMultiMap<Entity> slice = entities[i];
if (slice != null && !slice.isEmpty()) {
return true;
}
}
return false;
}
public boolean hasEntities(Chunk nmsChunk) {
ClassInheritanceMultiMap<Entity>[] entities = nmsChunk.getEntityLists();
for (int i = 0; i < entities.length; i++) {
ClassInheritanceMultiMap<Entity> slice = entities[i];
if (slice != null && !slice.isEmpty()) {
return true;
}
}
return false;
}
public boolean hasEntities(Chunk nmsChunk) {
ClassInheritanceMultiMap<Entity>[] entities = nmsChunk.getEntityLists();
for (int i = 0; i < entities.length; i++) {
ClassInheritanceMultiMap<Entity> slice = entities[i];
if (slice != null && !slice.isEmpty()) {
return true;
}
}
return false;
}
public boolean hasEntities(Chunk nmsChunk) {
ClassInheritanceMultiMap<Entity>[] entities = nmsChunk.getEntityLists();
for (int i = 0; i < entities.length; i++) {
ClassInheritanceMultiMap<Entity> slice = entities[i];
if (slice != null && !slice.isEmpty()) {
return true;
}
}
return false;
}