add boilerplate for mounts and fixtures
This commit is contained in:
parent
0ea163dfb7
commit
0a90b6b77a
15 changed files with 158 additions and 17 deletions
34
server/game/room/world/body/turret/fixture.js
Normal file
34
server/game/room/world/body/turret/fixture.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
'use strict';
|
||||
|
||||
const traits = require('../../traits/turrets.json');
|
||||
|
||||
class Fixture {
|
||||
constructor(hardpoint, data) {
|
||||
this.hardpoint = hardpoint;
|
||||
|
||||
this.projectiles = new WeakSet();
|
||||
|
||||
let turretTraits = traits[data.type];
|
||||
|
||||
this.rof = turretTraits.rateOfFire;
|
||||
|
||||
this.traversal = this.hardpoint.traversal || false;
|
||||
this._angle = this.traversal ? this.traversal.cw : 0;
|
||||
}
|
||||
|
||||
destruct() {
|
||||
this.projectiles.forEach(p => p.world.removeBody(p));
|
||||
}
|
||||
|
||||
get angle() {
|
||||
return this._angle;
|
||||
}
|
||||
|
||||
set angle(angle) {
|
||||
// TODO: Check if within traversal limit if on mount.
|
||||
if (this.type == 'fixed') return;
|
||||
this._angle = angle;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Fixture;
|
Loading…
Add table
Add a link
Reference in a new issue