Files
q1k3/source/entity_torch.js
T

36 lines
871 B
JavaScript
Raw Normal View History

2021-09-13 09:34:08 +02:00
class entity_torch_t extends entity_t {
_init() {
this._texture = 30;
this._model = model_torch;
this._anim = [0.05, [0,1,2,1,2,0,0,1,2]];
this.p.x -= 16;
this.p.z -= 16;
this._light_pos = this.p;
// Find which wall we're on; move to the torch model towards the wall
// and the light position outwards
for (let trace_dir of [vec3(-32,0,0), vec3(32,0,0), vec3(0,0,-32), vec3(0,0,32)]) {
let trace_end = vec3_add(this.p, trace_dir);
if (map_trace(this.p, vec3_add(this.p, trace_dir))) {
this.p = vec3_add(this.p, vec3_mulf(trace_dir, 0.4));
this._light_pos = vec3_sub(this.p, vec3_mulf(trace_dir, 2));
break;
}
}
this._light = 0;
}
_update() {
super._update();
if (Math.random() > 0.8) {
this._light = Math.random();
}
r_push_light(this._light_pos, Math.sin(game_time)+this._light+6, 255,192,16);
}
}