geforkt von Mirrors/FastAsyncWorldEdit
Fixed chunk loading code not properly handling tile entity data.
Dieser Commit ist enthalten in:
Ursprung
6a162a4269
Commit
3b59798f37
@ -15,13 +15,6 @@ import com.sk89q.worldedit.BlockVector;
|
|||||||
import com.sk89q.worldedit.LocalWorld;
|
import com.sk89q.worldedit.LocalWorld;
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||||
import com.sk89q.worldedit.blocks.BlockID;
|
|
||||||
import com.sk89q.worldedit.blocks.ChestBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.DispenserBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.FurnaceBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.MobSpawnerBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.NoteBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.SignBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.TileEntityBlock;
|
import com.sk89q.worldedit.blocks.TileEntityBlock;
|
||||||
|
|
||||||
public class AnvilChunk implements Chunk {
|
public class AnvilChunk implements Chunk {
|
||||||
@ -187,7 +180,11 @@ public class AnvilChunk implements Chunk {
|
|||||||
populateTileEntities();
|
populateTileEntities();
|
||||||
}
|
}
|
||||||
|
|
||||||
return new CompoundTag("", tileEntities.get(new BlockVector(pos)));
|
Map<String, Tag> values = tileEntities.get(new BlockVector(pos));
|
||||||
|
if (values == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new CompoundTag("", values);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -196,7 +193,7 @@ public class AnvilChunk implements Chunk {
|
|||||||
int data = getBlockData(pos);
|
int data = getBlockData(pos);
|
||||||
BaseBlock block;
|
BaseBlock block;
|
||||||
|
|
||||||
if (id == BlockID.WALL_SIGN || id == BlockID.SIGN_POST) {
|
/*if (id == BlockID.WALL_SIGN || id == BlockID.SIGN_POST) {
|
||||||
block = new SignBlock(id, data);
|
block = new SignBlock(id, data);
|
||||||
} else if (id == BlockID.CHEST) {
|
} else if (id == BlockID.CHEST) {
|
||||||
block = new ChestBlock(data);
|
block = new ChestBlock(data);
|
||||||
@ -208,13 +205,15 @@ public class AnvilChunk implements Chunk {
|
|||||||
block = new MobSpawnerBlock(data);
|
block = new MobSpawnerBlock(data);
|
||||||
} else if (id == BlockID.NOTE_BLOCK) {
|
} else if (id == BlockID.NOTE_BLOCK) {
|
||||||
block = new NoteBlock(data);
|
block = new NoteBlock(data);
|
||||||
} else {
|
} else {*/
|
||||||
block = new BaseBlock(id, data);
|
block = new BaseBlock(id, data);
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (block instanceof TileEntityBlock) {
|
if (block instanceof TileEntityBlock) {
|
||||||
CompoundTag tileEntity = getBlockTileEntity(pos);
|
CompoundTag tileEntity = getBlockTileEntity(pos);
|
||||||
((TileEntityBlock) block).setNbtData(tileEntity);
|
if (tileEntity != null) {
|
||||||
|
((TileEntityBlock) block).setNbtData(tileEntity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return block;
|
return block;
|
||||||
|
@ -33,13 +33,6 @@ import com.sk89q.worldedit.BlockVector;
|
|||||||
import com.sk89q.worldedit.LocalWorld;
|
import com.sk89q.worldedit.LocalWorld;
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||||
import com.sk89q.worldedit.blocks.BlockID;
|
|
||||||
import com.sk89q.worldedit.blocks.ChestBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.DispenserBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.FurnaceBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.MobSpawnerBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.NoteBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.SignBlock;
|
|
||||||
import com.sk89q.worldedit.blocks.TileEntityBlock;
|
import com.sk89q.worldedit.blocks.TileEntityBlock;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -185,7 +178,11 @@ public class OldChunk implements Chunk {
|
|||||||
populateTileEntities();
|
populateTileEntities();
|
||||||
}
|
}
|
||||||
|
|
||||||
return new CompoundTag("", tileEntities.get(new BlockVector(pos)));
|
Map<String, Tag> values = tileEntities.get(new BlockVector(pos));
|
||||||
|
if (values == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new CompoundTag("", values);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -194,7 +191,7 @@ public class OldChunk implements Chunk {
|
|||||||
int data = getBlockData(pos);
|
int data = getBlockData(pos);
|
||||||
BaseBlock block;
|
BaseBlock block;
|
||||||
|
|
||||||
if (id == BlockID.WALL_SIGN || id == BlockID.SIGN_POST) {
|
/*if (id == BlockID.WALL_SIGN || id == BlockID.SIGN_POST) {
|
||||||
block = new SignBlock(id, data);
|
block = new SignBlock(id, data);
|
||||||
} else if (id == BlockID.CHEST) {
|
} else if (id == BlockID.CHEST) {
|
||||||
block = new ChestBlock(data);
|
block = new ChestBlock(data);
|
||||||
@ -206,13 +203,15 @@ public class OldChunk implements Chunk {
|
|||||||
block = new MobSpawnerBlock(data);
|
block = new MobSpawnerBlock(data);
|
||||||
} else if (id == BlockID.NOTE_BLOCK) {
|
} else if (id == BlockID.NOTE_BLOCK) {
|
||||||
block = new NoteBlock(data);
|
block = new NoteBlock(data);
|
||||||
} else {
|
} else {*/
|
||||||
block = new BaseBlock(id, data);
|
block = new BaseBlock(id, data);
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (block instanceof TileEntityBlock) {
|
if (block instanceof TileEntityBlock) {
|
||||||
CompoundTag tileEntity = getBlockTileEntity(pos);
|
CompoundTag tileEntity = getBlockTileEntity(pos);
|
||||||
((TileEntityBlock) block).setNbtData(tileEntity);
|
if (tileEntity != null) {
|
||||||
|
((TileEntityBlock) block).setNbtData(tileEntity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return block;
|
return block;
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren