Skip to content

Commit

Permalink
[#72] Add config
Browse files Browse the repository at this point in the history
  • Loading branch information
Orchaldir committed Sep 21, 2023
1 parent 8c75018 commit 5ad7bb2
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 11 deletions.
1 change: 1 addition & 0 deletions rpg_tools_rendering/src/rendering/config/equipment/mod.rs
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
pub mod pants;
pub mod shirt;
12 changes: 12 additions & 0 deletions rpg_tools_rendering/src/rendering/config/equipment/shirt.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/// The rendering config of the [`shirts`](rpg_tools_core::model::equipment::appearance::shirt::Shirt).
#[derive(Debug, PartialEq)]
pub struct ShirtConfig {
pub boat_depth: f32,
pub boat_width: f32,
pub crew_depth: f32,
pub crew_width: f32,
pub deep_v_depth: f32,
pub scoop_depth: f32,
pub scoop_width: f32,
pub v_depth: f32,
}
11 changes: 11 additions & 0 deletions rpg_tools_rendering/src/rendering/config/example.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use crate::rendering::config::body::torso::TorsoConfig;
use crate::rendering::config::body::BodyConfig;
use crate::rendering::config::ear::EarConfig;
use crate::rendering::config::equipment::pants::PantsConfig;
use crate::rendering::config::equipment::shirt::ShirtConfig;
use crate::rendering::config::eye::eyebrow::EyebrowConfig;
use crate::rendering::config::eye::EyeConfig;
use crate::rendering::config::hair::hairline::HairlineConfig;
Expand Down Expand Up @@ -127,6 +128,16 @@ pub fn create_config() -> RenderConfig {
width_padding: 0.05,
balloon_padding: 0.2,
},
shirt: ShirtConfig {
boat_depth: 0.05,
boat_width: 0.7,
crew_depth: 0.1,
crew_width: 0.3,
deep_v_depth: 0.4,
scoop_depth: 0.2,
scoop_width: 0.5,
v_depth: 0.2,
},
}
}

Expand Down
2 changes: 2 additions & 0 deletions rpg_tools_rendering/src/rendering/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use crate::renderer::RenderOptions;
use crate::rendering::config::body::BodyConfig;
use crate::rendering::config::ear::EarConfig;
use crate::rendering::config::equipment::pants::PantsConfig;
use crate::rendering::config::equipment::shirt::ShirtConfig;
use crate::rendering::config::eye::EyeConfig;
use crate::rendering::config::hair::HairConfig;
use crate::rendering::config::head::HeadConfig;
Expand Down Expand Up @@ -35,6 +36,7 @@ pub struct RenderConfig {
pub head: HeadConfig,
pub mouth: MouthConfig,
pub pants: PantsConfig,
pub shirt: ShirtConfig,
}

impl RenderConfig {
Expand Down
29 changes: 18 additions & 11 deletions rpg_tools_rendering/src/rendering/equipment/shirt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use crate::renderer::Renderer;
use crate::rendering::body::torso::create_torso;
use crate::rendering::body::{get_left_arm, get_left_arm_short};
use crate::rendering::config::body::torso::TorsoConfig;
use crate::rendering::config::equipment::shirt::ShirtConfig;
use crate::rendering::config::RenderConfig;
use rpg_tools_core::model::character::appearance::body::Body;
use rpg_tools_core::model::equipment::appearance::shirt::{Neckline, Shirt, SleeveStyle};
Expand All @@ -16,13 +17,13 @@ pub fn render_shirt(
shirt: &Shirt,
from_front: bool,
) {
render_sleeves(renderer, &config, aabb, body, shirt);
render_torso(renderer, &config, aabb, body, shirt, from_front);
render_sleeves(renderer, config, aabb, body, shirt);
render_torso(renderer, config, aabb, body, shirt, from_front);
}

fn render_torso(
renderer: &mut dyn Renderer,
config: &&RenderConfig,
config: &RenderConfig,
aabb: &AABB,
body: &Body,
shirt: &Shirt,
Expand All @@ -34,7 +35,7 @@ fn render_torso(
let mut builder = create_torso(&torso_aabb, &config.body, torso);

if from_front {
add_neckline(&torso_aabb, torso, shirt, &mut builder);
add_neckline(&torso_aabb, &config.shirt, torso, shirt, &mut builder);
} else {
add_straight(&torso_aabb, torso, &mut builder)
}
Expand All @@ -45,7 +46,7 @@ fn render_torso(

fn render_sleeves(
renderer: &mut dyn Renderer,
config: &&RenderConfig,
config: &RenderConfig,
aabb: &AABB,
body: &Body,
shirt: &Shirt,
Expand All @@ -63,14 +64,20 @@ fn render_sleeves(
renderer.render_rounded_polygon(&aabb.mirrored(&polygon), &options);
}

fn add_neckline(aabb: &AABB, torso: &TorsoConfig, shirt: &Shirt, builder: &mut Polygon2dBuilder) {
fn add_neckline(
aabb: &AABB,
config: &ShirtConfig,
torso: &TorsoConfig,
shirt: &Shirt,
builder: &mut Polygon2dBuilder,
) {
match shirt.neckline {
Neckline::Boat => add_round(aabb, torso, builder, 0.7, 0.05),
Neckline::Crew => add_round(aabb, torso, builder, 0.3, 0.1),
Neckline::DeepV => add_v(aabb, torso, builder, 0.4),
Neckline::Boat => add_round(aabb, torso, builder, config.boat_width, config.boat_depth),
Neckline::Crew => add_round(aabb, torso, builder, config.crew_width, config.crew_depth),
Neckline::DeepV => add_v(aabb, torso, builder, config.deep_v_depth),
Neckline::None => add_straight(aabb, torso, builder),
Neckline::Scoop => add_round(aabb, torso, builder, 0.5, 0.2),
Neckline::V => add_v(aabb, torso, builder, 0.2),
Neckline::Scoop => add_round(aabb, torso, builder, config.scoop_width, config.scoop_depth),
Neckline::V => add_v(aabb, torso, builder, config.v_depth),
}
}

Expand Down

0 comments on commit 5ad7bb2

Please sign in to comment.