generated from GarandPLG/rust-flake-template
Display structure owner and adjust UI layouts
Add owner line to structure text, using gray label and owner span. Switch side panel layout to Fill/Length and remove left border from side panel widget. Import Stylize for colored text rendering.
This commit is contained in:
@@ -2,7 +2,10 @@ use crate::app::states::skirmish_states::{
|
||||
Players,
|
||||
structures::{BaseBuilding, Ore, Stone, Structure, Tunnel},
|
||||
};
|
||||
use ratatui::{style::Color, text::Line};
|
||||
use ratatui::{
|
||||
style::{Color, Stylize},
|
||||
text::Line,
|
||||
};
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum Structures {
|
||||
@@ -58,6 +61,14 @@ impl Structure for Structures {
|
||||
}
|
||||
|
||||
fn text(&self) -> Vec<Line<'_>> {
|
||||
self.structure().text()
|
||||
let owner: Players = self.structure().get_owner();
|
||||
let mut lines: Vec<Line<'_>> = self.structure().text();
|
||||
|
||||
match owner {
|
||||
Players::Unclaimed => {}
|
||||
_ => lines.push(Line::from_iter(["Owner: ".gray(), owner.get_span()])),
|
||||
}
|
||||
|
||||
lines
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ pub fn skirmish_layout(area: Rect) -> [Rect; 3] {
|
||||
|
||||
pub fn skirmish_main_area_layout(area: Rect, side_panel: bool) -> [Rect; 2] {
|
||||
let constraint: [Constraint; 2] = if side_panel {
|
||||
[Constraint::Percentage(80), Constraint::Percentage(20)]
|
||||
[Constraint::Fill(1), Constraint::Length(39)]
|
||||
} else {
|
||||
[Constraint::Percentage(100), Constraint::Percentage(0)]
|
||||
};
|
||||
|
||||
@@ -53,7 +53,7 @@ impl<'a> SidePanelWidget<'a> {
|
||||
|
||||
fn get_inner_block<'b>(&self, title: String, color: Color) -> Block<'b> {
|
||||
Block::default()
|
||||
.borders(Borders::LEFT | Borders::TOP)
|
||||
.borders(Borders::TOP)
|
||||
.title(block_single_title_helper(title, color))
|
||||
.title_alignment(Alignment::Center)
|
||||
.padding(Padding::symmetric(1, 1))
|
||||
|
||||
Reference in New Issue
Block a user