geforkt von Mirrors/FastAsyncWorldEdit
Merge pull request #423 from Gerrygames/master
fix sponge schematic offset
Dieser Commit ist enthalten in:
Commit
6a71cd2155
@ -119,7 +119,7 @@ public class SpongeSchematicReader extends NBTSchematicReader {
|
|||||||
int offsetZ = requireTag(metadata, "WEOffsetZ", IntTag.class).getValue();
|
int offsetZ = requireTag(metadata, "WEOffsetZ", IntTag.class).getValue();
|
||||||
Vector offset = new Vector(offsetX, offsetY, offsetZ);
|
Vector offset = new Vector(offsetX, offsetY, offsetZ);
|
||||||
origin = min.subtract(offset);
|
origin = min.subtract(offset);
|
||||||
region = new CuboidRegion(origin, origin.add(width, height, length).subtract(Vector.ONE));
|
region = new CuboidRegion(min, min.add(width, height, length).subtract(Vector.ONE));
|
||||||
} else {
|
} else {
|
||||||
origin = min;
|
origin = min;
|
||||||
region = new CuboidRegion(origin, origin.add(width, height, length).subtract(Vector.ONE));
|
region = new CuboidRegion(origin, origin.add(width, height, length).subtract(Vector.ONE));
|
||||||
@ -160,7 +160,7 @@ public class SpongeSchematicReader extends NBTSchematicReader {
|
|||||||
|
|
||||||
for (Map<String, Tag> tileEntity : tileEntityTags) {
|
for (Map<String, Tag> tileEntity : tileEntityTags) {
|
||||||
int[] pos = requireTag(tileEntity, "Pos", IntArrayTag.class).getValue();
|
int[] pos = requireTag(tileEntity, "Pos", IntArrayTag.class).getValue();
|
||||||
tileEntitiesMap.put(origin.add(new BlockVector(pos[0], pos[1], pos[2])).toBlockVector(), tileEntity);
|
tileEntitiesMap.put(new BlockVector(pos[0], pos[1], pos[2]).toBlockVector(), tileEntity);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new IOException("Failed to load Tile Entities: " + e.getMessage());
|
throw new IOException("Failed to load Tile Entities: " + e.getMessage());
|
||||||
@ -189,9 +189,9 @@ public class SpongeSchematicReader extends NBTSchematicReader {
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
// index = (y * length + z) * width + x
|
// index = (y * length + z) * width + x
|
||||||
int y = origin.getBlockY() + index / (width * length);
|
int y = index / (width * length);
|
||||||
int z = origin.getBlockZ() + (index % (width * length)) / width;
|
int z = (index % (width * length)) / width;
|
||||||
int x = origin.getBlockX() + (index % (width * length)) % width;
|
int x = (index % (width * length)) % width;
|
||||||
BlockState state = palette.get(value);
|
BlockState state = palette.get(value);
|
||||||
BlockVector pt = new BlockVector(x, y, z);
|
BlockVector pt = new BlockVector(x, y, z);
|
||||||
try {
|
try {
|
||||||
@ -208,9 +208,9 @@ public class SpongeSchematicReader extends NBTSchematicReader {
|
|||||||
values.put("id", values.get("Id"));
|
values.put("id", values.get("Id"));
|
||||||
values.remove("Id");
|
values.remove("Id");
|
||||||
values.remove("Pos");
|
values.remove("Pos");
|
||||||
clipboard.setBlock(pt, state.toBaseBlock(new CompoundTag(values)));
|
clipboard.setBlock(clipboard.getMinimumPoint().add(pt), state.toBaseBlock(new CompoundTag(values)));
|
||||||
} else {
|
} else {
|
||||||
clipboard.setBlock(pt, state);
|
clipboard.setBlock(clipboard.getMinimumPoint().add(pt), state);
|
||||||
}
|
}
|
||||||
} catch (WorldEditException e) {
|
} catch (WorldEditException e) {
|
||||||
throw new IOException("Failed to load a block in the schematic");
|
throw new IOException("Failed to load a block in the schematic");
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren