UNPKG

arx-level-generator

Version:
158 lines 12.4 kB
import path from 'node:path'; import { Rotation } from './Rotation.js'; import { Script } from './Script.js'; import { Vector3 } from './Vector3.js'; import { LoadAnim } from './scripting/commands/LoadAnim.js'; export class Player { orientation; position; script; constructor() { this.orientation = new Rotation(0, 0, 0); this.position = new Vector3(0, 0, 0); } hasScript() { return typeof this.script !== 'undefined'; } withScript() { if (this.hasScript()) { return this; } this.script = new Script({ filename: 'player.asl', }); this.script .on('init', new LoadAnim('wait', 'player_wait_short')) .on('init', new LoadAnim('wait_short', 'player_wait_1st')) .on('init', new LoadAnim('walk', 'human_normal_walk')) .on('init', new LoadAnim('walk_ministep', 'human_normal_walk_little_steps')) .on('init', new LoadAnim('strafe_right', 'human_normal_strafe_right')) .on('init', new LoadAnim('strafe_left', 'human_normal_strafe_left')) .on('init', new LoadAnim('walk_backward', 'human_normal_walk_backward')) .on('init', new LoadAnim('run', 'player_normal_run_test')) .on('init', new LoadAnim('run_backward', 'player_normal_run_backward_test')) .on('init', new LoadAnim('strafe_run_right', 'player_normal_strafe_run_right')) .on('init', new LoadAnim('strafe_run_left', 'player_normal_strafe_run_left')) .on('init', new LoadAnim('u_turn_left', 'player_uturn_left')) .on('init', new LoadAnim('u_turn_right', 'player_uturn_right')) .on('init', new LoadAnim('u_turn_left_fight', 'player_uturn_left_fight')) .on('init', new LoadAnim('u_turn_right_fight', 'player_uturn_right_fight')) .on('init', new LoadAnim('fight_wait', 'human_fight_wait_player')) .on('init', new LoadAnim('fight_walk_forward', 'player_fight_walk')) .on('init', new LoadAnim('fight_walk_backward', 'player_fight_walk_backward')) .on('init', new LoadAnim('fight_strafe_right', 'player_fight_strafe_right')) .on('init', new LoadAnim('fight_strafe_left', 'player_fight_strafe_left')) .on('init', new LoadAnim('bare_ready', 'human_fight_ready_noweap')) .on('init', new LoadAnim('bare_unready', 'human_fight_unready_noweap')) .on('init', new LoadAnim('bare_wait', 'human_fight_wait_noweap')) .on('init', new LoadAnim('bare_strike_right_start', 'human_fight_attack_noweap_right_start')) .on('init', new LoadAnim('bare_strike_right_cycle', 'human_fight_attack_noweap_right_cycle')) .on('init', new LoadAnim('bare_strike_right', 'human_fight_attack_noweap_right_strike')) .on('init', new LoadAnim('bare_strike_left_start', 'human_fight_attack_noweap_left_start')) .on('init', new LoadAnim('bare_strike_left_cycle', 'human_fight_attack_noweap_left_cycle')) .on('init', new LoadAnim('bare_strike_left', 'human_fight_attack_noweap_left_strike')) .on('init', new LoadAnim('bare_strike_bottom_start', 'human_fight_attack_noweap_top_start')) .on('init', new LoadAnim('bare_strike_bottom_cycle', 'human_fight_attack_noweap_top_cycle')) .on('init', new LoadAnim('bare_strike_bottom', 'human_fight_attack_noweap_top_strike')) .on('init', new LoadAnim('bare_strike_top_start', 'human_fight_attack_noweap_bottom_start')) .on('init', new LoadAnim('bare_strike_top_cycle', 'human_fight_attack_noweap_bottom_cycle')) .on('init', new LoadAnim('bare_strike_top', 'human_fight_attack_noweap_bottom_strike')) .on('init', new LoadAnim('1h_ready_part_1', 'human_fight_ready_1handed_start')) .on('init', new LoadAnim('1h_ready_part_2', 'human_fight_ready_1handed_end')) .on('init', new LoadAnim('1h_unready_part_1', 'human_fight_unready_1handed_start')) .on('init', new LoadAnim('1h_unready_part_2', 'human_fight_unready_1handed_end')) .on('init', new LoadAnim('1h_wait', 'human_fight_wait_1handed')) .on('init', new LoadAnim('1h_strike_right_start', 'human_fight_attack_1handed_left_start')) .on('init', new LoadAnim('1h_strike_right_cycle', 'human_fight_attack_1handed_left_cycle')) .on('init', new LoadAnim('1h_strike_right', 'human_fight_attack_1handed_left_strike')) .on('init', new LoadAnim('1h_strike_left_start', 'human_fight_attack_1handed_right_start')) .on('init', new LoadAnim('1h_strike_left_cycle', 'human_fight_attack_1handed_right_cycle')) .on('init', new LoadAnim('1h_strike_left', 'human_fight_attack_1handed_right_strike')) .on('init', new LoadAnim('1h_strike_top_start', 'human_fight_attack_1handed_top_start')) .on('init', new LoadAnim('1h_strike_top_cycle', 'human_fight_attack_1handed_top_cycle')) .on('init', new LoadAnim('1h_strike_top', 'human_fight_attack_1handed_top_strike')) .on('init', new LoadAnim('1h_strike_bottom_start', 'human_fight_attack_1handed_bottom_start')) .on('init', new LoadAnim('1h_strike_bottom_cycle', 'human_fight_attack_1handed_bottom_cycle')) .on('init', new LoadAnim('1h_strike_bottom', 'human_fight_attack_1handed_bottom_strike')) .on('init', new LoadAnim('2h_ready_part_1', 'human_fight_ready_2handed_start')) .on('init', new LoadAnim('2h_ready_part_2', 'human_fight_ready_2handed_end')) .on('init', new LoadAnim('2h_unready_part_1', 'human_fight_unready_2handed_start')) .on('init', new LoadAnim('2h_unready_part_2', 'human_fight_unready_2handed_end')) .on('init', new LoadAnim('2h_wait', 'human_fight_wait_2handed')) .on('init', new LoadAnim('2h_strike_right_start', 'human_fight_attack_2handed_right_start')) .on('init', new LoadAnim('2h_strike_right_cycle', 'human_fight_attack_2handed_right_cycle')) .on('init', new LoadAnim('2h_strike_right', 'human_fight_attack_2handed_right_strike')) .on('init', new LoadAnim('2h_strike_left_start', 'human_fight_attack_2handed_left_start')) .on('init', new LoadAnim('2h_strike_left_cycle', 'human_fight_attack_2handed_left_cycle')) .on('init', new LoadAnim('2h_strike_left', 'human_fight_attack_2handed_left_strike')) .on('init', new LoadAnim('2h_strike_top_start', 'human_fight_attack_2handed_top_start')) .on('init', new LoadAnim('2h_strike_top_cycle', 'human_fight_attack_2handed_top_cycle')) .on('init', new LoadAnim('2h_strike_top', 'human_fight_attack_2handed_top_strike')) .on('init', new LoadAnim('2h_strike_bottom_start', 'human_fight_attack_2handed_bottom_start')) .on('init', new LoadAnim('2h_strike_bottom_cycle', 'human_fight_attack_2handed_bottom_cycle')) .on('init', new LoadAnim('2h_strike_bottom', 'human_fight_attack_2handed_bottom_strike')) .on('init', new LoadAnim('dagger_ready_part_1', 'human_fight_ready_dagger_start')) .on('init', new LoadAnim('dagger_ready_part_2', 'human_fight_ready_dagger_end')) .on('init', new LoadAnim('dagger_unready_part_1', 'human_fight_unready_dagger_start')) .on('init', new LoadAnim('dagger_unready_part_2', 'human_fight_unready_dagger_end')) .on('init', new LoadAnim('dagger_wait', 'human_fight_attack_dagger_wait')) .on('init', new LoadAnim('dagger_strike_right_start', 'human_fight_attack_dagger_right_start')) .on('init', new LoadAnim('dagger_strike_right_cycle', 'human_fight_attack_dagger_right_cycle')) .on('init', new LoadAnim('dagger_strike_right', 'human_fight_attack_dagger_right_strike')) .on('init', new LoadAnim('dagger_strike_left_start', 'human_fight_attack_dagger_left_start')) .on('init', new LoadAnim('dagger_strike_left_cycle', 'human_fight_attack_dagger_left_cycle')) .on('init', new LoadAnim('dagger_strike_left', 'human_fight_attack_dagger_left_strike')) .on('init', new LoadAnim('dagger_strike_top_start', 'human_fight_attack_dagger_top_start')) .on('init', new LoadAnim('dagger_strike_top_cycle', 'human_fight_attack_dagger_top_cycle')) .on('init', new LoadAnim('dagger_strike_top', 'human_fight_attack_dagger_top_strike')) .on('init', new LoadAnim('dagger_strike_bottom_start', 'human_fight_attack_dagger_bottom_start')) .on('init', new LoadAnim('dagger_strike_bottom_cycle', 'human_fight_attack_dagger_bottom_cycle')) .on('init', new LoadAnim('dagger_strike_bottom', 'human_fight_attack_dagger_bottom_strike')) .on('init', new LoadAnim('missile_ready_part_1', 'human_fight_ready_bow_start')) .on('init', new LoadAnim('missile_ready_part_2', 'human_fight_ready_bow_end')) .on('init', new LoadAnim('missile_unready_part_1', 'human_fight_unready_bow_start')) .on('init', new LoadAnim('missile_unready_part_2', 'human_fight_unready_bow_end')) .on('init', new LoadAnim('missile_wait', 'human_fight_wait_bow')) .on('init', new LoadAnim('missile_strike_part_1', 'human_fight_attack_bow_start_part1')) .on('init', new LoadAnim('missile_strike_part_2', 'human_fight_attack_bow_start_part2')) .on('init', new LoadAnim('missile_strike_cycle', 'human_fight_attack_bow_cycle')) .on('init', new LoadAnim('missile_strike', 'human_fight_attack_bow_strike')) .on('init', new LoadAnim('shield_start', 'human_fight_shield_in')) .on('init', new LoadAnim('shield_cycle', 'human_fight_shield_cycle')) .on('init', new LoadAnim('shield_hit', 'human_fight_shield_hit')) .on('init', new LoadAnim('shield_end', 'human_fight_shield_out')) .on('init', new LoadAnim('cast_start', 'human_castspell_in')) .on('init', new LoadAnim('cast_cycle', 'human_castspell_cycle')) .on('init', new LoadAnim('cast', 'human_castspell_cast')) .on('init', new LoadAnim('cast_end', 'human_castspell_out')) .on('init', new LoadAnim('meditation', 'human_meditation')) .on('init', new LoadAnim('levitate', 'human_levitation')) .on('init', new LoadAnim('crouch_start', 'human_normal_crouch_in')) .on('init', new LoadAnim('crouch_wait', 'human_normal_crouch_cycle')) .on('init', new LoadAnim('crouch_end', 'human_normal_crouch_out')) .on('init', new LoadAnim('crouch_strafe_right', 'human_normal_crouch_strafe_right')) .on('init', new LoadAnim('crouch_strafe_left', 'human_normal_crouch_strafe_left')) .on('init', new LoadAnim('crouch_walk', 'human_normal_crouch_walk_forward')) .on('init', new LoadAnim('crouch_walk_backward', 'human_normal_crouch_walk_backward')) .on('init', new LoadAnim('lean_left', 'human_normal_lean_right_in')) .on('init', new LoadAnim('lean_right', 'human_normal_lean_left_in')) .on('init', new LoadAnim('jump_anticipation', 'human_normal_jump_part1_anticipation')) .on('init', new LoadAnim('jump_up', 'human_normal_jump_part2_jumpup')) .on('init', new LoadAnim('jump_cycle', 'human_normal_jump_part3_cycleinair')) .on('init', new LoadAnim('jump_end', 'human_normal_jump_part4_landing')) .on('init', new LoadAnim('jump_end_part2', 'human_normal_jump_part5_contact_floor')) .on('init', new LoadAnim('hold_torch', 'human_hold_torch_toponly')) .on('init', new LoadAnim('die', 'human_death5')) .on('init', new LoadAnim('hit', 'human_fight_receive_damage')) .on('init', new LoadAnim('talk_neutral', 'human_talk_neutral_headonly')) .on('init', new LoadAnim('talk_angry', 'human_talk_angry_headonly')); return this; } exportTarget(settings) { if (!this.hasScript()) { throw new Error("trying to export a Player which doesn't have a script"); } return path.resolve(settings.outputDir, Script.targetPath, 'player', this.script.filename); } } //# sourceMappingURL=Player.js.map