mirror of
https://github.com/danbulant/flying-squid
synced 2026-07-06 11:40:46 +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 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);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -146,3 +158,7 @@ describe("Detect portal", function() {
|
||||||
assert.deepEqual(foundAir,air);
|
assert.deepEqual(foundAir,air);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue