update common
This commit is contained in:
parent
1ad6104c14
commit
69f08061ed
13
Cargo.lock
generated
13
Cargo.lock
generated
@ -98,6 +98,16 @@ version = "0.25.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3"
|
checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "id"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://git.itzana.me/Quaternions/id?rev=faca9fb6a8eb0c7f0e2796fbfad9eac16875cbd6#faca9fb6a8eb0c7f0e2796fbfad9eac16875cbd6"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lazy-regex"
|
name = "lazy-regex"
|
||||||
version = "3.1.0"
|
version = "3.1.0"
|
||||||
@ -410,9 +420,10 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "strafesnet_common"
|
name = "strafesnet_common"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://git.itzana.me/StrafesNET/common?rev=5efdd3654ad64666584bdeed65fdc867a946b223#5efdd3654ad64666584bdeed65fdc867a946b223"
|
source = "git+https://git.itzana.me/StrafesNET/common?rev=ec59d251d2c9f3a6e719dc47924b6ea998ad7bc3#ec59d251d2c9f3a6e719dc47924b6ea998ad7bc3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"glam",
|
"glam",
|
||||||
|
"id",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -12,4 +12,4 @@ rbx_binary = "0.7.4"
|
|||||||
rbx_dom_weak = "2.7.0"
|
rbx_dom_weak = "2.7.0"
|
||||||
rbx_reflection_database = "0.2.10"
|
rbx_reflection_database = "0.2.10"
|
||||||
rbx_xml = "0.13.3"
|
rbx_xml = "0.13.3"
|
||||||
strafesnet_common = { git = "https://git.itzana.me/StrafesNET/common", rev = "5efdd3654ad64666584bdeed65fdc867a946b223" }
|
strafesnet_common = { git = "https://git.itzana.me/StrafesNET/common", rev = "ec59d251d2c9f3a6e719dc47924b6ea998ad7bc3" }
|
||||||
|
@ -245,9 +245,9 @@ pub fn generate_partial_unit_cube(face_descriptions:CubeFaceDescription)->Indexe
|
|||||||
let normal_index=generated_normal.len() as u32;
|
let normal_index=generated_normal.len() as u32;
|
||||||
generated_normal.push(CUBE_DEFAULT_NORMALS[face_id]);
|
generated_normal.push(CUBE_DEFAULT_NORMALS[face_id]);
|
||||||
//push vertices as they are needed
|
//push vertices as they are needed
|
||||||
let group_id=PolygonGroupId::id(polygon_groups.len() as u32);
|
let group_id=PolygonGroupId::new(polygon_groups.len() as u32);
|
||||||
polygon_groups.push(PolygonList(vec![IndexedVertexList{
|
polygon_groups.push(PolygonList(vec![IndexedVertexList::new(
|
||||||
vertices:CUBE_DEFAULT_POLYS[face_id].map(|tup|{
|
CUBE_DEFAULT_POLYS[face_id].map(|tup|{
|
||||||
let pos=CUBE_DEFAULT_VERTICES[tup[0] as usize];
|
let pos=CUBE_DEFAULT_VERTICES[tup[0] as usize];
|
||||||
let pos_index=if let Some(pos_index)=generated_pos.iter().position(|&p|p==pos){
|
let pos_index=if let Some(pos_index)=generated_pos.iter().position(|&p|p==pos){
|
||||||
pos_index
|
pos_index
|
||||||
@ -259,16 +259,16 @@ pub fn generate_partial_unit_cube(face_descriptions:CubeFaceDescription)->Indexe
|
|||||||
} as u32;
|
} as u32;
|
||||||
//always push vertex
|
//always push vertex
|
||||||
let vertex=IndexedVertex{
|
let vertex=IndexedVertex{
|
||||||
pos:PositionId::id(pos_index),
|
pos:PositionId::new(pos_index),
|
||||||
tex:TextureCoordinateId::id(tup[1]+4*transform_index),
|
tex:TextureCoordinateId::new(tup[1]+4*transform_index),
|
||||||
normal:NormalId::id(normal_index),
|
normal:NormalId::new(normal_index),
|
||||||
color:ColorId::id(color_index),
|
color:ColorId::new(color_index),
|
||||||
};
|
};
|
||||||
let vert_index=generated_vertices.len();
|
let vert_index=generated_vertices.len();
|
||||||
generated_vertices.push(vertex);
|
generated_vertices.push(vertex);
|
||||||
VertexId::id(vert_index as u32)
|
VertexId::new(vert_index as u32)
|
||||||
}).to_vec(),
|
}).to_vec(),
|
||||||
}]));
|
)]));
|
||||||
graphics_groups.push(IndexedGraphicsGroup{
|
graphics_groups.push(IndexedGraphicsGroup{
|
||||||
render:face_description.render,
|
render:face_description.render,
|
||||||
groups:vec![group_id],
|
groups:vec![group_id],
|
||||||
@ -358,9 +358,9 @@ pub fn generate_partial_unit_wedge(face_descriptions:WedgeFaceDescription)->Inde
|
|||||||
let normal_index=generated_normal.len() as u32;
|
let normal_index=generated_normal.len() as u32;
|
||||||
generated_normal.push(WEDGE_DEFAULT_NORMALS[face_id]);
|
generated_normal.push(WEDGE_DEFAULT_NORMALS[face_id]);
|
||||||
//push vertices as they are needed
|
//push vertices as they are needed
|
||||||
let group_id=PolygonGroupId::id(polygon_groups.len() as u32);
|
let group_id=PolygonGroupId::new(polygon_groups.len() as u32);
|
||||||
polygon_groups.push(PolygonList(vec![IndexedVertexList{
|
polygon_groups.push(PolygonList(vec![IndexedVertexList::new(
|
||||||
vertices:wedge_default_polys[face_id].iter().map(|tup|{
|
wedge_default_polys[face_id].iter().map(|tup|{
|
||||||
let pos=CUBE_DEFAULT_VERTICES[tup[0] as usize];
|
let pos=CUBE_DEFAULT_VERTICES[tup[0] as usize];
|
||||||
let pos_index=if let Some(pos_index)=generated_pos.iter().position(|&p|p==pos){
|
let pos_index=if let Some(pos_index)=generated_pos.iter().position(|&p|p==pos){
|
||||||
pos_index
|
pos_index
|
||||||
@ -372,16 +372,16 @@ pub fn generate_partial_unit_wedge(face_descriptions:WedgeFaceDescription)->Inde
|
|||||||
} as u32;
|
} as u32;
|
||||||
//always push vertex
|
//always push vertex
|
||||||
let vertex=IndexedVertex{
|
let vertex=IndexedVertex{
|
||||||
pos:PositionId::id(pos_index),
|
pos:PositionId::new(pos_index),
|
||||||
tex:TextureCoordinateId::id(tup[1]+4*transform_index),
|
tex:TextureCoordinateId::new(tup[1]+4*transform_index),
|
||||||
normal:NormalId::id(normal_index),
|
normal:NormalId::new(normal_index),
|
||||||
color:ColorId::id(color_index),
|
color:ColorId::new(color_index),
|
||||||
};
|
};
|
||||||
let vert_index=generated_vertices.len();
|
let vert_index=generated_vertices.len();
|
||||||
generated_vertices.push(vertex);
|
generated_vertices.push(vertex);
|
||||||
VertexId::id(vert_index as u32)
|
VertexId::new(vert_index as u32)
|
||||||
}).collect()
|
}).collect()
|
||||||
}]));
|
)]));
|
||||||
graphics_groups.push(IndexedGraphicsGroup{
|
graphics_groups.push(IndexedGraphicsGroup{
|
||||||
render:face_description.render,
|
render:face_description.render,
|
||||||
groups:vec![group_id],
|
groups:vec![group_id],
|
||||||
@ -469,9 +469,9 @@ pub fn generate_partial_unit_cornerwedge(face_descriptions:CornerWedgeFaceDescri
|
|||||||
let normal_index=generated_normal.len() as u32;
|
let normal_index=generated_normal.len() as u32;
|
||||||
generated_normal.push(CORNERWEDGE_DEFAULT_NORMALS[face_id]);
|
generated_normal.push(CORNERWEDGE_DEFAULT_NORMALS[face_id]);
|
||||||
//push vertices as they are needed
|
//push vertices as they are needed
|
||||||
let group_id=PolygonGroupId::id(polygon_groups.len() as u32);
|
let group_id=PolygonGroupId::new(polygon_groups.len() as u32);
|
||||||
polygon_groups.push(PolygonList(vec![IndexedVertexList{
|
polygon_groups.push(PolygonList(vec![IndexedVertexList::new(
|
||||||
vertices:cornerwedge_default_polys[face_id].iter().map(|tup|{
|
cornerwedge_default_polys[face_id].iter().map(|tup|{
|
||||||
let pos=CUBE_DEFAULT_VERTICES[tup[0] as usize];
|
let pos=CUBE_DEFAULT_VERTICES[tup[0] as usize];
|
||||||
let pos_index=if let Some(pos_index)=generated_pos.iter().position(|&p|p==pos){
|
let pos_index=if let Some(pos_index)=generated_pos.iter().position(|&p|p==pos){
|
||||||
pos_index
|
pos_index
|
||||||
@ -483,16 +483,16 @@ pub fn generate_partial_unit_cornerwedge(face_descriptions:CornerWedgeFaceDescri
|
|||||||
} as u32;
|
} as u32;
|
||||||
//always push vertex
|
//always push vertex
|
||||||
let vertex=IndexedVertex{
|
let vertex=IndexedVertex{
|
||||||
pos:PositionId::id(pos_index),
|
pos:PositionId::new(pos_index),
|
||||||
tex:TextureCoordinateId::id(tup[1]+4*transform_index),
|
tex:TextureCoordinateId::new(tup[1]+4*transform_index),
|
||||||
normal:NormalId::id(normal_index),
|
normal:NormalId::new(normal_index),
|
||||||
color:ColorId::id(color_index),
|
color:ColorId::new(color_index),
|
||||||
};
|
};
|
||||||
let vert_index=generated_vertices.len();
|
let vert_index=generated_vertices.len();
|
||||||
generated_vertices.push(vertex);
|
generated_vertices.push(vertex);
|
||||||
VertexId::id(vert_index as u32)
|
VertexId::new(vert_index as u32)
|
||||||
}).collect(),
|
}).collect(),
|
||||||
}],
|
)],
|
||||||
));
|
));
|
||||||
graphics_groups.push(IndexedGraphicsGroup{
|
graphics_groups.push(IndexedGraphicsGroup{
|
||||||
render:face_description.render,
|
render:face_description.render,
|
||||||
|
26
src/rbx.rs
26
src/rbx.rs
@ -77,14 +77,14 @@ impl ModesBuilder{
|
|||||||
unique_stages.into_iter().enumerate()
|
unique_stages.into_iter().enumerate()
|
||||||
.map(|(final_stage_id,(builder_stage_id,stage))|{
|
.map(|(final_stage_id,(builder_stage_id,stage))|{
|
||||||
mode.push_stage(stage);
|
mode.push_stage(stage);
|
||||||
(builder_stage_id,gameplay_modes::StageId::id(final_stage_id as u32))
|
(builder_stage_id,gameplay_modes::StageId::new(final_stage_id as u32))
|
||||||
}).collect()
|
}).collect()
|
||||||
}),
|
}),
|
||||||
mode,
|
mode,
|
||||||
},
|
},
|
||||||
(
|
(
|
||||||
builder_mode_id,
|
builder_mode_id,
|
||||||
gameplay_modes::ModeId::id(final_mode_id as u32)
|
gameplay_modes::ModeId::new(final_mode_id as u32)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}).unzip();
|
}).unzip();
|
||||||
@ -226,7 +226,7 @@ fn get_attributes(object:&rbx_dom_weak::Instance,can_collide:bool,velocity:Plana
|
|||||||
.captures(other){
|
.captures(other){
|
||||||
force_can_collide=false;
|
force_can_collide=false;
|
||||||
modes_builder.push_mode_update(
|
modes_builder.push_mode_update(
|
||||||
gameplay_modes::ModeId::id(captures[2].parse::<u32>().unwrap()),
|
gameplay_modes::ModeId::new(captures[2].parse::<u32>().unwrap()),
|
||||||
gameplay_modes::ModeUpdate::zone(
|
gameplay_modes::ModeUpdate::zone(
|
||||||
model_id,
|
model_id,
|
||||||
//zone:
|
//zone:
|
||||||
@ -243,7 +243,7 @@ fn get_attributes(object:&rbx_dom_weak::Instance,can_collide:bool,velocity:Plana
|
|||||||
// match &captures[1]{
|
// match &captures[1]{
|
||||||
// "OrderedCheckpoint"=>modes_builder.push_stage_update(
|
// "OrderedCheckpoint"=>modes_builder.push_stage_update(
|
||||||
// gameplay_modes::ModeId::MAIN,
|
// gameplay_modes::ModeId::MAIN,
|
||||||
// gameplay_modes::StageId::id(0),
|
// gameplay_modes::StageId::new(0),
|
||||||
// gameplay_modes::StageUpdate::ordered_checkpoint(captures[2].parse::<u32>().unwrap()),
|
// gameplay_modes::StageUpdate::ordered_checkpoint(captures[2].parse::<u32>().unwrap()),
|
||||||
// ),
|
// ),
|
||||||
// _=>panic!("regex3[1] messed up bad"),
|
// _=>panic!("regex3[1] messed up bad"),
|
||||||
@ -377,7 +377,7 @@ pub fn convert(dom:rbx_dom_weak::WeakDom)->map::Map{
|
|||||||
//this would be another dependency built for downloading resources to keep this one clean
|
//this would be another dependency built for downloading resources to keep this one clean
|
||||||
let mut unique_render_groups=vec![RenderConfig::default()];
|
let mut unique_render_groups=vec![RenderConfig::default()];
|
||||||
let mut render_id_from_asset_id=HashMap::<u64,RenderGroupId>::new();
|
let mut render_id_from_asset_id=HashMap::<u64,RenderGroupId>::new();
|
||||||
let textureless_render_group=RenderGroupId::id(0);
|
let textureless_render_group=RenderGroupId::new(0);
|
||||||
|
|
||||||
let mut object_refs=Vec::new();
|
let mut object_refs=Vec::new();
|
||||||
let mut temp_objects=Vec::new();
|
let mut temp_objects=Vec::new();
|
||||||
@ -415,7 +415,7 @@ pub fn convert(dom:rbx_dom_weak::WeakDom)->map::Map{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//at this point a new model is going to be generated for sure.
|
//at this point a new model is going to be generated for sure.
|
||||||
let model_id=model::ModelId::id(models1.len() as u32);
|
let model_id=model::ModelId::new(models1.len() as u32);
|
||||||
|
|
||||||
let force_intersecting=match &object.name[..]{
|
let force_intersecting=match &object.name[..]{
|
||||||
"MapStart"=>{
|
"MapStart"=>{
|
||||||
@ -434,7 +434,7 @@ pub fn convert(dom:rbx_dom_weak::WeakDom)->map::Map{
|
|||||||
match &captures[1]{
|
match &captures[1]{
|
||||||
"BonusStart"=>{
|
"BonusStart"=>{
|
||||||
modes_builder.insert_mode(
|
modes_builder.insert_mode(
|
||||||
gameplay_modes::ModeId::id(captures[2].parse::<u32>().unwrap()),
|
gameplay_modes::ModeId::new(captures[2].parse::<u32>().unwrap()),
|
||||||
gameplay_modes::Mode::new(
|
gameplay_modes::Mode::new(
|
||||||
gameplay_style::StyleModifiers::roblox_bhop(),
|
gameplay_style::StyleModifiers::roblox_bhop(),
|
||||||
model_id
|
model_id
|
||||||
@ -445,7 +445,7 @@ pub fn convert(dom:rbx_dom_weak::WeakDom)->map::Map{
|
|||||||
"Spawn"=>{
|
"Spawn"=>{
|
||||||
modes_builder.insert_stage(
|
modes_builder.insert_stage(
|
||||||
gameplay_modes::ModeId::MAIN,
|
gameplay_modes::ModeId::MAIN,
|
||||||
gameplay_modes::StageId::id(captures[2].parse::<u32>().unwrap()),
|
gameplay_modes::StageId::new(captures[2].parse::<u32>().unwrap()),
|
||||||
gameplay_modes::Stage::new(model_id),
|
gameplay_modes::Stage::new(model_id),
|
||||||
);
|
);
|
||||||
true
|
true
|
||||||
@ -511,7 +511,7 @@ pub fn convert(dom:rbx_dom_weak::WeakDom)->map::Map{
|
|||||||
let render_id=if let Some(&render_id)=render_id_from_asset_id.get(&asset_id.0){
|
let render_id=if let Some(&render_id)=render_id_from_asset_id.get(&asset_id.0){
|
||||||
render_id
|
render_id
|
||||||
}else{
|
}else{
|
||||||
let render_id=RenderGroupId::id(unique_render_groups.len() as u32);
|
let render_id=RenderGroupId::new(unique_render_groups.len() as u32);
|
||||||
render_id_from_asset_id.insert(asset_id.0,render_id);
|
render_id_from_asset_id.insert(asset_id.0,render_id);
|
||||||
unique_render_groups.push(RenderConfig::texture(asset_id.0));
|
unique_render_groups.push(RenderConfig::texture(asset_id.0));
|
||||||
render_id
|
render_id
|
||||||
@ -602,7 +602,7 @@ pub fn convert(dom:rbx_dom_weak::WeakDom)->map::Map{
|
|||||||
//push to existing texture model
|
//push to existing texture model
|
||||||
indexed_model_id
|
indexed_model_id
|
||||||
}else{
|
}else{
|
||||||
let indexed_model_id=model::IndexedModelId::id(indexed_models.len() as u32);
|
let indexed_model_id=model::IndexedModelId::new(indexed_models.len() as u32);
|
||||||
indexed_model_id_from_description.insert(basepart_texture_description.clone(),indexed_model_id);//borrow checker going crazy
|
indexed_model_id_from_description.insert(basepart_texture_description.clone(),indexed_model_id);//borrow checker going crazy
|
||||||
indexed_models.push(match basepart_texture_description{
|
indexed_models.push(match basepart_texture_description{
|
||||||
RobloxBasePartDescription::Sphere(part_texture_description)
|
RobloxBasePartDescription::Sphere(part_texture_description)
|
||||||
@ -687,7 +687,7 @@ pub fn convert(dom:rbx_dom_weak::WeakDom)->map::Map{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
let models=models1.into_iter().enumerate().map(|(model_id,mut model1)|{
|
let models=models1.into_iter().enumerate().map(|(model_id,mut model1)|{
|
||||||
let model_id=model::ModelId::id(model_id as u32);
|
let model_id=model::ModelId::new(model_id as u32);
|
||||||
//update attributes with wormhole id
|
//update attributes with wormhole id
|
||||||
//TODO: errors/prints
|
//TODO: errors/prints
|
||||||
if let Some(wormhole_id)=wormhole_in_model_to_id.get(&model_id){
|
if let Some(wormhole_id)=wormhole_in_model_to_id.get(&model_id){
|
||||||
@ -705,7 +705,7 @@ pub fn convert(dom:rbx_dom_weak::WeakDom)->map::Map{
|
|||||||
let attributes_id=if let Some(&attributes_id)=attributes_id_from_attributes.get(&model1.attributes){
|
let attributes_id=if let Some(&attributes_id)=attributes_id_from_attributes.get(&model1.attributes){
|
||||||
attributes_id
|
attributes_id
|
||||||
}else{
|
}else{
|
||||||
let attributes_id=attr::CollisionAttributesId::id(unique_attributes.len() as u32);
|
let attributes_id=attr::CollisionAttributesId::new(unique_attributes.len() as u32);
|
||||||
attributes_id_from_attributes.insert(model1.attributes.clone(),attributes_id);
|
attributes_id_from_attributes.insert(model1.attributes.clone(),attributes_id);
|
||||||
unique_attributes.push(model1.attributes);
|
unique_attributes.push(model1.attributes);
|
||||||
attributes_id
|
attributes_id
|
||||||
@ -721,7 +721,7 @@ pub fn convert(dom:rbx_dom_weak::WeakDom)->map::Map{
|
|||||||
textures:Vec::new(),//asset_id_from_texture_id.iter().map(|t|t.to_string()).collect(),
|
textures:Vec::new(),//asset_id_from_texture_id.iter().map(|t|t.to_string()).collect(),
|
||||||
indexed_models:indexed_models.into_iter().enumerate()
|
indexed_models:indexed_models.into_iter().enumerate()
|
||||||
.map(|(indexed_model_id,indexed_model)|
|
.map(|(indexed_model_id,indexed_model)|
|
||||||
(model::IndexedModelId::id(indexed_model_id as u32),indexed_model)
|
(model::IndexedModelId::new(indexed_model_id as u32),indexed_model)
|
||||||
).collect(),
|
).collect(),
|
||||||
models,
|
models,
|
||||||
modes:modes_builder.build(),
|
modes:modes_builder.build(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user