forked from StrafesNET/roblox-bot-player
rename Bot to CompleteBot
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
/// A loaded bot file.
|
||||
pub struct Bot{
|
||||
pub struct CompleteBot{
|
||||
//Instructions
|
||||
timelines:strafesnet_roblox_bot_file::v0::Block,
|
||||
offset:f64,
|
||||
duration:f64,
|
||||
}
|
||||
impl Bot{
|
||||
impl CompleteBot{
|
||||
pub(crate) const CAMERA_OFFSET:glam::Vec3=glam::vec3(0.0,2.0,0.0);
|
||||
pub fn new(
|
||||
data:&[u8],
|
||||
|
||||
@@ -31,7 +31,7 @@ impl PlaybackHead{
|
||||
timer,
|
||||
}
|
||||
}
|
||||
pub fn advance_time(&mut self,bot:&crate::bot::Bot,time:SessionTime){
|
||||
pub fn advance_time(&mut self,bot:&crate::bot::CompleteBot,time:SessionTime){
|
||||
let simulation_time=self.timer.time(time);
|
||||
let mut time_float=simulation_time.get() as f64/PhysicsTime::ONE_SECOND.get() as f64+bot.offset()+self.offset;
|
||||
loop{
|
||||
@@ -52,7 +52,7 @@ impl PlaybackHead{
|
||||
}
|
||||
}
|
||||
}
|
||||
pub fn get_position_angles(&self,bot:&crate::bot::Bot,time:SessionTime)->(glam::Vec3,glam::Vec2){
|
||||
pub fn get_position_angles(&self,bot:&crate::bot::CompleteBot,time:SessionTime)->(glam::Vec3,glam::Vec2){
|
||||
let time=self.timer.time(time);
|
||||
let event0=&bot.timelines().output_events[self.event_id];
|
||||
let event1=&bot.timelines().output_events[self.event_id+1];
|
||||
@@ -76,6 +76,6 @@ impl PlaybackHead{
|
||||
let angles1=vector3_to_glam(&event1.event.angles);
|
||||
let angles=angles0.lerp(angles1,t);
|
||||
|
||||
(p+crate::bot::Bot::CAMERA_OFFSET,angles.yx())
|
||||
(p+crate::bot::CompleteBot::CAMERA_OFFSET,angles.yx())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use strafesnet_common::instruction::TimedInstruction;
|
||||
use strafesnet_common::session::Time as SessionTime;
|
||||
use strafesnet_roblox_bot_player::{bot::Bot,graphics::Graphics,head::PlaybackHead};
|
||||
use strafesnet_roblox_bot_player::{bot::CompleteBot,graphics::Graphics,head::PlaybackHead};
|
||||
|
||||
pub enum SessionControlInstruction{
|
||||
SetPaused(bool),
|
||||
@@ -22,13 +22,13 @@ pub enum Instruction{
|
||||
pub struct PlayerWorker<'a>{
|
||||
surface:wgpu::Surface<'a>,
|
||||
graphics_thread:Graphics,
|
||||
bot:Bot,
|
||||
bot:CompleteBot,
|
||||
playback_head:PlaybackHead,
|
||||
}
|
||||
impl<'a> PlayerWorker<'a>{
|
||||
pub fn new(
|
||||
surface:wgpu::Surface<'a>,
|
||||
bot:Bot,
|
||||
bot:CompleteBot,
|
||||
graphics_thread:Graphics,
|
||||
)->Self{
|
||||
let playback_head=PlaybackHead::new(SessionTime::ZERO);
|
||||
|
||||
@@ -201,7 +201,7 @@ impl WindowContext<'_>{
|
||||
let screen_size=glam::uvec2(config.width,config.height);
|
||||
let bot=include_bytes!("../../web-demo/bhop_marble_7cf33a64-7120-4514-b9fa-4fe29d9523d.qbot");
|
||||
let map=include_bytes!("../../web-demo/bhop_marble_5692093612.snfm");
|
||||
let bot=strafesnet_roblox_bot_player::bot::Bot::new(bot).unwrap();
|
||||
let bot=strafesnet_roblox_bot_player::bot::CompleteBot::new(bot).unwrap();
|
||||
let map=strafesnet_roblox_bot_player::map::CompleteMap::new(map).unwrap();
|
||||
let mut graphics=strafesnet_roblox_bot_player::graphics::Graphics::new(device,queue,config);
|
||||
graphics.change_map(&map);
|
||||
|
||||
@@ -55,7 +55,7 @@ impl Graphics{
|
||||
}
|
||||
}
|
||||
#[wasm_bindgen]
|
||||
pub fn render(&mut self,bot:&Bot,head:&PlaybackHead,time:f64){
|
||||
pub fn render(&mut self,bot:&CompleteBot,head:&PlaybackHead,time:f64){
|
||||
// TODO: check f64 range
|
||||
let time=SessionTime::raw((time*SessionTime::ONE_SECOND.get() as f64) as i64);
|
||||
let (pos,angles)=head.head.get_position_angles(&bot.bot,time);
|
||||
@@ -72,15 +72,15 @@ impl Graphics{
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub struct Bot{
|
||||
bot:bot::Bot,
|
||||
pub struct CompleteBot{
|
||||
bot:bot::CompleteBot,
|
||||
}
|
||||
#[wasm_bindgen]
|
||||
impl Bot{
|
||||
impl CompleteBot{
|
||||
#[wasm_bindgen(constructor)]
|
||||
pub fn new(data:&[u8])->Result<Self,JsValue>{
|
||||
Ok(Self{
|
||||
bot:bot::Bot::new(data).map_err(|e|JsValue::from_str(&e.to_string()))?,
|
||||
bot:bot::CompleteBot::new(data).map_err(|e|JsValue::from_str(&e.to_string()))?,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -114,7 +114,7 @@ impl PlaybackHead{
|
||||
})
|
||||
}
|
||||
#[wasm_bindgen]
|
||||
pub fn advance_time(&mut self,bot:&Bot,time:f64){
|
||||
pub fn advance_time(&mut self,bot:&CompleteBot,time:f64){
|
||||
// TODO: check f64 range
|
||||
let time=SessionTime::raw((time*SessionTime::ONE_SECOND.get() as f64) as i64);
|
||||
self.head.advance_time(&bot.bot,time);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import init, {
|
||||
setup,
|
||||
Bot,
|
||||
CompleteBot,
|
||||
Graphics,
|
||||
CompleteMap,
|
||||
PlaybackHead,
|
||||
@@ -15,7 +15,7 @@ const canvas = document.querySelector("canvas");
|
||||
|
||||
const context = await setup(canvas);
|
||||
const graphics = new Graphics(context);
|
||||
const bot = new Bot(new Uint8Array(await b.arrayBuffer()));
|
||||
const bot = new CompleteBot(new Uint8Array(await b.arrayBuffer()));
|
||||
const map = new CompleteMap(new Uint8Array(await m.arrayBuffer()));
|
||||
const playback = new PlaybackHead(0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user