mirror of
https://github.com/danbulant/flying-squid
synced 2026-07-09 21:21:01 +00:00
make portal test more general to test for several portal kinds
This commit is contained in:
parent
539b9c1314
commit
adcd35b985
1 changed files with 141 additions and 125 deletions
|
|
@ -3,23 +3,31 @@ var World = require('prismarine-world');
|
|||
var Chunk = require('prismarine-chunk')(require("flying-squid").version);
|
||||
var Vec3 = require("vec3").Vec3;
|
||||
var assert = require('assert');
|
||||
var range = require('range').range;
|
||||
|
||||
|
||||
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:[]
|
||||
});
|
||||
|
||||
|
||||
var bottom=[new Vec3(3, 1, 1), new Vec3(4, 1, 1)];
|
||||
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)];
|
||||
portalData.forEach(({name,bottom,left,right,top,air,additionalAir,additionalObsidian}) => {
|
||||
describe("Detect "+name,() => {
|
||||
var expectedBorder=[
|
||||
bottom,
|
||||
left,
|
||||
right,
|
||||
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;
|
||||
before(function(){
|
||||
|
|
@ -29,6 +37,10 @@ describe("Detect portal", function() {
|
|||
expectedBorder.forEach(border => border.forEach(pos => chunk.setBlockType(pos,49)));
|
||||
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);
|
||||
});
|
||||
|
||||
|
|
@ -146,3 +158,7 @@ describe("Detect portal", function() {
|
|||
assert.deepEqual(foundAir,air);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue