import mods.randomtweaker.vanilla.IBlockPos;
import crafttweaker.world.IBlockPos;
// 在这里就不介绍用扩展类类名调用方法的方式了, 详情请看 IItemStack Expansion 的内容
// 首先先创建两个 IBlockPos 对象作为示例
var posOne as IBlockPos = IBlockPos.create(0, 0, 0);
var posTwo as IBlockPos = IBlockPos.create(1, 1, 1);
// getAllInBox 方法的用法
// 此方法只能由类名调用, 用对象调用会报错
// posOne.getAllInBox(posTwo); 会报 No such member in crafttweaker.world.IBlockPos: getAllInBox
// 只能这么调用 getAllInBox 方法
var posCollection as IBlockPos[] = IBlockPos.getAllInBox(posOne, posTwo);
// 接下来打印集合内的成员
for pos in posCollection {
print("坐标 : " ~ pos.x ~ "," ~ pos.y ~ "," ~ pos.z);
}
/* 结果 :
坐标 : 0,0,0
坐标 : 1,0,0
坐标 : 0,1,0
坐标 : 1,1,0
坐标 : 0,0,1
坐标 : 1,0,1
坐标 : 0,1,1
坐标 : 1,1,1
*/
// 接下来是 add 方法
var posOneAdded as IBlockPos = posOne.add(1, 1, 1); //调用接受整型的 add 方法
// print 一下 add 后的结果
print("PosOne Add 后的结果 : " ~ posOneAdded.x ~ "," ~ posOneAdded.y ~ "," ~ posOneAdded.z); // 会打印 PosOne Add 后的结果 : 1,1,1
//-----------------------------------------------
// 以下是上表其余的方法
// up
// 向 y 轴正半轴偏移
print(posOne.up().y); // 不填参数默认偏移 1 格, 在这里会打印 1
print(posOne.up(3).y); // 在这里会打印 3
// down
// 向 y 轴负半轴偏移
print(posOne.down().y); // 不填参数默认偏移 1 格, 在这里会打印 -1
print(posOne.down(3).y); // 在这里会打印 -3
// north
// 向 z 轴负半轴偏移
print(posOne.north().z); // 不填参数默认偏移 1 格, 在这里会打印 -1
print(posOne.north(3).z); // 在这里会打印 -3
// south
// 向 z 轴正半轴偏移
print(posOne.south().z); // 不填参数默认偏移 1 格, 在这里会打印 1
print(posOne.south(3).z); // 在这里会打印 3
// west
// 向 x 轴负半轴偏移
print(posOne.west().x); // 不填参数默认偏移 1 格, 在这里会打印 -1
print(posOne.west(3).x); // 在这里会打印 -3
// east
// 向 x 轴正半轴偏移
print(posOne.east().x); // 不填参数默认偏移 1 格, 在这里会打印 1
print(posOne.east(3).x); // 在这里会打印 3