make portal test more general to test for several portal kinds

This commit is contained in:
Romain Beaumont 2015-12-13 20:07:45 +01:00
parent 539b9c1314
commit adcd35b985

View file

@ -3,23 +3,31 @@ var World = require('prismarine-world');
var Chunk = require('prismarine-chunk')(require("flying-squid").version); var Chunk = require('prismarine-chunk')(require("flying-squid").version);
var Vec3 = require("vec3").Vec3; var Vec3 = require("vec3").Vec3;
var assert = require('assert'); var assert = require('assert');
var range = require('range').range;
describe("Detect portal", function() { describe("Detect portal", function() {
var portalData=[];
portalData.push({
name:"simple portal frame x",
bottom:[new Vec3(3, 1, 1), new Vec3(4, 1, 1)],
left:[new Vec3(2, 2, 1), new Vec3(2, 3, 1), new Vec3(2, 4, 1)],
right:[new Vec3(5, 2, 1), new Vec3(5, 3, 1), new Vec3(5, 4, 1)],
top:[new Vec3(3, 5, 1), new Vec3(4, 5, 1)],
air:[new Vec3(3, 2, 1),new Vec3(3, 3, 1),new Vec3(3, 4, 1),new Vec3(4, 2, 1),new Vec3(4, 3, 1),new Vec3(4, 4, 1)],
additionalAir:[],
additionalObsidian:[]
});
portalData.forEach(({name,bottom,left,right,top,air,additionalAir,additionalObsidian}) => {
var bottom=[new Vec3(3, 1, 1), new Vec3(4, 1, 1)]; describe("Detect "+name,() => {
var left=[new Vec3(2, 2, 1), new Vec3(2, 3, 1), new Vec3(2, 4, 1)];
var right=[new Vec3(5, 2, 1), new Vec3(5, 3, 1), new Vec3(5, 4, 1)];
var top=[new Vec3(3, 5, 1), new Vec3(4, 5, 1)];
var expectedBorder=[ var expectedBorder=[
bottom, bottom,
left, left,
right, right,
top top
]; ];
var air=[new Vec3(3, 2, 1),new Vec3(3, 3, 1),new Vec3(3, 4, 1),new Vec3(4, 2, 1),new Vec3(4, 3, 1),new Vec3(4, 4, 1)];
var world; var world;
before(function(){ before(function(){
@ -29,6 +37,10 @@ describe("Detect portal", function() {
expectedBorder.forEach(border => border.forEach(pos => chunk.setBlockType(pos,49))); expectedBorder.forEach(border => border.forEach(pos => chunk.setBlockType(pos,49)));
air.forEach(pos => chunk.setBlockType(pos,0)); air.forEach(pos => chunk.setBlockType(pos,0));
additionalAir.forEach(pos => chunk.setBlockType(pos,0));
additionalObsidian.forEach(pos => chunk.setBlockType(pos,49));
return world.setColumn(0,0,chunk); return world.setColumn(0,0,chunk);
}); });
@ -145,4 +157,8 @@ describe("Detect portal", function() {
var foundAir=getAir(expectedBorder); var foundAir=getAir(expectedBorder);
assert.deepEqual(foundAir,air); assert.deepEqual(foundAir,air);
}); });
});
});
}); });