feat: initialize sunrise with 100-player shared rooms
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import {test} from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {Raycaster,Vector3} from 'three';
|
||||
import {createHarbour,insideHarbour,isGisamun} from '../src/scene/harbour.ts';
|
||||
import {GISAMUN_HARBOUR as PORT} from '../src/constants/harbour.ts';
|
||||
import {GISAMUN} from '../src/constants/gisamun.ts';
|
||||
|
||||
test('Gisamun harbour keeps its basin and entrance open with solid raised quays',()=>{
|
||||
const port=createHarbour(.1375735);
|
||||
port.group.updateMatrixWorld(true);
|
||||
for(const [x,z] of [[-80,-250],[70,-155],[140,-150]]) {
|
||||
assert.equal(insideHarbour(PORT.land,x,z),false,'water must not become pavement');
|
||||
assert.equal(new Raycaster(new Vector3(x,100,z),new Vector3(0,-1,0)).intersectObject(port.group,true).length,0);
|
||||
}
|
||||
assert.equal(insideHarbour(PORT.basin,-80,-250),true);
|
||||
assert.equal(insideHarbour(PORT.basin,140,-150),false);
|
||||
for(const [x,z] of [[-150,-280],[20,-155],[100,-165],[-25,-350]]) {
|
||||
const y=port.heightAt(x,z);
|
||||
assert.ok(y!==undefined && y>2.8);
|
||||
const hit=new Raycaster(new Vector3(x,100,z),new Vector3(0,-1,0)).intersectObject(port.group,true)[0];
|
||||
assert.ok(hit,'quay roof must face upward');
|
||||
assert.ok(Math.abs(hit.point.y-y)<.01,'walking height matches the roof');
|
||||
}
|
||||
assert.equal(isGisamun(GISAMUN),true);
|
||||
assert.equal(isGisamun({latitude:38.0231,longitude:128.7254}),false);
|
||||
port.dispose();
|
||||
});
|
||||
Reference in New Issue
Block a user