forked from StrafesNET/strafe-client
Compare commits
31 Commits
Author | SHA1 | Date | |
---|---|---|---|
5ba0f3f8cb | |||
4b74ea8acf | |||
dd7e48350d | |||
9bdb3ff403 | |||
4eda90e178 | |||
72c91558e7 | |||
9453ef17fb | |||
7425f1cd01 | |||
682fa44741 | |||
84b364313b | |||
6005485789 | |||
2fc1fcfa80 | |||
8a1e713170 | |||
a685c4ebe2 | |||
0150bb977d | |||
f280b65fc9 | |||
327ba10fb4 | |||
6b897620e9 | |||
a5efbe6574 | |||
a64b81f05e | |||
462950d526 | |||
c5f9a30c1b | |||
1d4a79b15e | |||
4556bc8741 | |||
215dfab8a9 | |||
d6e15dea05 | |||
ec8c89de9c | |||
33c9fb0399 | |||
bbc9a89ad7 | |||
fc7d4b7e0c | |||
60bd926ce1 |
692
Cargo.lock
generated
692
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
18
Cargo.toml
18
Cargo.toml
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "strafe-client"
|
name = "strafe-client"
|
||||||
version = "0.10.5"
|
version = "0.10.3"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://git.itzana.me/StrafesNET/strafe-client"
|
repository = "https://git.itzana.me/StrafesNET/strafe-client"
|
||||||
license = "Custom"
|
license = "Custom"
|
||||||
@ -18,17 +18,17 @@ roblox = ["dep:strafesnet_deferred_loader", "dep:strafesnet_rbx_loader"]
|
|||||||
bytemuck = { version = "1.13.1", features = ["derive"] }
|
bytemuck = { version = "1.13.1", features = ["derive"] }
|
||||||
configparser = "3.0.2"
|
configparser = "3.0.2"
|
||||||
ddsfile = "0.5.1"
|
ddsfile = "0.5.1"
|
||||||
glam = "0.29.0"
|
glam = "0.28.0"
|
||||||
id = { version = "0.1.0", registry = "strafesnet" }
|
id = { version = "0.1.0", registry = "strafesnet" }
|
||||||
parking_lot = "0.12.1"
|
parking_lot = "0.12.1"
|
||||||
pollster = "0.3.0"
|
pollster = "0.3.0"
|
||||||
strafesnet_bsp_loader = { version = "0.2.1", registry = "strafesnet", optional = true }
|
strafesnet_bsp_loader = { version = "0.1.3", registry = "strafesnet", optional = true }
|
||||||
strafesnet_common = { version = "0.5.2", registry = "strafesnet" }
|
strafesnet_common = { git = "https://git.itzana.me/StrafesNET/common", rev = "d3bc8e0e855503f368a60eee8e92b73302207272" }
|
||||||
strafesnet_deferred_loader = { version = "0.4.0", features = ["legacy"], registry = "strafesnet", optional = true }
|
strafesnet_deferred_loader = { version = "0.3.1", features = ["legacy"], registry = "strafesnet", optional = true }
|
||||||
strafesnet_rbx_loader = { version = "0.5.1", registry = "strafesnet", optional = true }
|
strafesnet_rbx_loader = { version = "0.3.2", registry = "strafesnet", optional = true }
|
||||||
strafesnet_snf = { version = "0.2.0", registry = "strafesnet", optional = true }
|
strafesnet_snf = { git = "https://git.itzana.me/StrafesNET/snf", rev = "cbe20623046ec4dd41234b473c8d6171048d7b2d", optional = true }
|
||||||
wgpu = "22.1.0"
|
wgpu = "22.0.0"
|
||||||
winit = "0.30.5"
|
winit = "0.30.4"
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
#lto = true
|
#lto = true
|
||||||
|
11
src/file.rs
11
src/file.rs
@ -22,7 +22,7 @@ impl std::error::Error for ReadError{}
|
|||||||
|
|
||||||
pub enum DataStructure{
|
pub enum DataStructure{
|
||||||
#[cfg(feature="roblox")]
|
#[cfg(feature="roblox")]
|
||||||
Roblox(strafesnet_rbx_loader::Model),
|
Roblox(strafesnet_rbx_loader::Dom),
|
||||||
#[cfg(feature="source")]
|
#[cfg(feature="source")]
|
||||||
Source(strafesnet_bsp_loader::Bsp),
|
Source(strafesnet_bsp_loader::Bsp),
|
||||||
#[cfg(feature="snf")]
|
#[cfg(feature="snf")]
|
||||||
@ -66,16 +66,13 @@ pub fn load<P:AsRef<std::path::Path>>(path:P)->Result<strafesnet_common::map::Co
|
|||||||
#[cfg(feature="snf")]
|
#[cfg(feature="snf")]
|
||||||
DataStructure::StrafesNET(map)=>Ok(map),
|
DataStructure::StrafesNET(map)=>Ok(map),
|
||||||
#[cfg(feature="roblox")]
|
#[cfg(feature="roblox")]
|
||||||
DataStructure::Roblox(model)=>{
|
DataStructure::Roblox(dom)=>{
|
||||||
let mut place=model.into_place();
|
|
||||||
place.run_scripts();
|
|
||||||
|
|
||||||
let mut loader=strafesnet_deferred_loader::roblox_legacy();
|
let mut loader=strafesnet_deferred_loader::roblox_legacy();
|
||||||
|
|
||||||
let (texture_loader,mesh_loader)=loader.get_inner_mut();
|
let (texture_loader,mesh_loader)=loader.get_inner_mut();
|
||||||
|
|
||||||
let map_step1=strafesnet_rbx_loader::convert(
|
let map_step1=strafesnet_rbx_loader::convert(
|
||||||
&place,
|
&dom,
|
||||||
|name|texture_loader.acquire_render_config_id(name),
|
|name|texture_loader.acquire_render_config_id(name),
|
||||||
|name|mesh_loader.acquire_mesh_id(name),
|
|name|mesh_loader.acquire_mesh_id(name),
|
||||||
);
|
);
|
||||||
@ -113,7 +110,7 @@ pub fn load<P:AsRef<std::path::Path>>(path:P)->Result<strafesnet_common::map::Co
|
|||||||
|name|mesh_loader.acquire_mesh_id(name),
|
|name|mesh_loader.acquire_mesh_id(name),
|
||||||
);
|
);
|
||||||
|
|
||||||
let prop_meshes=mesh_loader.load_meshes(bsp.as_ref());
|
let prop_meshes=mesh_loader.load_meshes(&bsp.as_ref());
|
||||||
|
|
||||||
let map_step2=map_step1.add_prop_meshes(
|
let map_step2=map_step1.add_prop_meshes(
|
||||||
//the type conflagulator 9000
|
//the type conflagulator 9000
|
||||||
|
@ -757,7 +757,7 @@ impl MinkowskiMesh<'_>{
|
|||||||
//WARNING! d outside of *2
|
//WARNING! d outside of *2
|
||||||
//WARNING: truncated precision
|
//WARNING: truncated precision
|
||||||
for dt in Fixed::<4,128>::zeroes2(((n.dot(relative_body.position))*2-d).fix_4(),n.dot(relative_body.velocity).fix_4()*2,n.dot(relative_body.acceleration).fix_4()){
|
for dt in Fixed::<4,128>::zeroes2(((n.dot(relative_body.position))*2-d).fix_4(),n.dot(relative_body.velocity).fix_4()*2,n.dot(relative_body.acceleration).fix_4()){
|
||||||
if Ratio::new(Planar64::ZERO,Planar64::EPSILON).le_ratio(dt)&&dt.lt_ratio(best_time)&&n.dot(relative_body.extrapolated_velocity_ratio_dt(dt)).is_negative(){
|
if dt.num.is_positive()&&dt.lt_ratio(best_time)&&n.dot(relative_body.extrapolated_velocity_ratio_dt(dt)).is_negative(){
|
||||||
best_time=dt;
|
best_time=dt;
|
||||||
best_edge=Some(directed_edge_id);
|
best_edge=Some(directed_edge_id);
|
||||||
break;
|
break;
|
||||||
|
@ -877,7 +877,8 @@ impl Body{
|
|||||||
T1:integer::Fix<Planar64>,
|
T1:integer::Fix<Planar64>,
|
||||||
{
|
{
|
||||||
// a*dt + v
|
// a*dt + v
|
||||||
self.acceleration.map(|elem|(dt*elem).divide().fix())+self.velocity
|
self.acceleration.map(|elem|dt*elem)
|
||||||
|
.map(|elem|elem.divide().fix())+self.velocity
|
||||||
}
|
}
|
||||||
pub fn advance_time_ratio_dt(&mut self,dt:model_physics::GigaTime){
|
pub fn advance_time_ratio_dt(&mut self,dt:model_physics::GigaTime){
|
||||||
self.position=self.extrapolated_position_ratio_dt(dt);
|
self.position=self.extrapolated_position_ratio_dt(dt);
|
||||||
|
@ -100,19 +100,19 @@ impl WindowContext<'_>{
|
|||||||
if let Some(input_instruction)=match keycode{
|
if let Some(input_instruction)=match keycode{
|
||||||
winit::keyboard::Key::Named(winit::keyboard::NamedKey::Space)=>Some(InputInstruction::Jump(s)),
|
winit::keyboard::Key::Named(winit::keyboard::NamedKey::Space)=>Some(InputInstruction::Jump(s)),
|
||||||
winit::keyboard::Key::Character(key)=>match key.as_str(){
|
winit::keyboard::Key::Character(key)=>match key.as_str(){
|
||||||
"w"|"W"=>Some(InputInstruction::MoveForward(s)),
|
"w"=>Some(InputInstruction::MoveForward(s)),
|
||||||
"a"|"A"=>Some(InputInstruction::MoveLeft(s)),
|
"a"=>Some(InputInstruction::MoveLeft(s)),
|
||||||
"s"|"S"=>Some(InputInstruction::MoveBack(s)),
|
"s"=>Some(InputInstruction::MoveBack(s)),
|
||||||
"d"|"D"=>Some(InputInstruction::MoveRight(s)),
|
"d"=>Some(InputInstruction::MoveRight(s)),
|
||||||
"e"|"E"=>Some(InputInstruction::MoveUp(s)),
|
"e"=>Some(InputInstruction::MoveUp(s)),
|
||||||
"q"|"Q"=>Some(InputInstruction::MoveDown(s)),
|
"q"=>Some(InputInstruction::MoveDown(s)),
|
||||||
"z"|"Z"=>Some(InputInstruction::Zoom(s)),
|
"z"=>Some(InputInstruction::Zoom(s)),
|
||||||
"r"|"R"=>if s{
|
"r"=>if s{
|
||||||
//mouse needs to be reset since the position is absolute
|
//mouse needs to be reset since the position is absolute
|
||||||
self.mouse=strafesnet_common::mouse::MouseState::default();
|
self.mouse=strafesnet_common::mouse::MouseState::default();
|
||||||
Some(InputInstruction::ResetAndRestart)
|
Some(InputInstruction::ResetAndRestart)
|
||||||
}else{None},
|
}else{None},
|
||||||
"f"|"F"=>if s{Some(InputInstruction::PracticeFly)}else{None},
|
"f"=>if s{Some(InputInstruction::PracticeFly)}else{None},
|
||||||
_=>None,
|
_=>None,
|
||||||
},
|
},
|
||||||
_=>None,
|
_=>None,
|
||||||
|
Loading…
Reference in New Issue
Block a user