shell: add monstera
This commit is contained in:
parent
07ee04bba4
commit
316b332d4a
2 changed files with 59 additions and 3 deletions
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
//mod monstera;
|
mod monstera;
|
||||||
|
|
||||||
use{
|
use{
|
||||||
std::sync::{Arc, RwLock},
|
std::sync::{Arc, RwLock},
|
||||||
|
@ -287,11 +287,11 @@ write::
|
||||||
{
|
{
|
||||||
compositor.write().unwrap().push(magic.offset(Vector2::new(40, 4)));
|
compositor.write().unwrap().push(magic.offset(Vector2::new(40, 4)));
|
||||||
//compositor.write().unwrap().push(magic.offset(Vector2::new(40, 20)));
|
//compositor.write().unwrap().push(magic.offset(Vector2::new(40, 20)));
|
||||||
/*
|
|
||||||
let monstera_port = monstera::make_monstera();
|
let monstera_port = monstera::make_monstera();
|
||||||
compositor.write().unwrap().push(monstera_port.clone());
|
compositor.write().unwrap().push(monstera_port.clone());
|
||||||
compositor.write().unwrap().push(monstera_port.offset(Vector2::new(83,0)));
|
compositor.write().unwrap().push(monstera_port.offset(Vector2::new(83,0)));
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
56
shell/src/monstera.rs
Normal file
56
shell/src/monstera.rs
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
|
||||||
|
use {
|
||||||
|
cgmath::Point2,
|
||||||
|
nested::{
|
||||||
|
core::{ViewPort, OuterViewPort},
|
||||||
|
vec::VecBuffer,
|
||||||
|
terminal::{
|
||||||
|
TerminalStyle, TerminalView, make_label
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
pub fn make_monstera() -> OuterViewPort<dyn TerminalView> {
|
||||||
|
let monstera_lines_port = ViewPort::new();
|
||||||
|
let monstera_lines = VecBuffer::with_data(
|
||||||
|
vec![
|
||||||
|
make_label(" |"),
|
||||||
|
make_label(" |"),
|
||||||
|
make_label(" _..._ | _..._"),
|
||||||
|
make_label(" .( \\|/ )."),
|
||||||
|
make_label(" ( | )"),
|
||||||
|
make_label(" .__>. <> | <> .<__."),
|
||||||
|
make_label(" / | \\"),
|
||||||
|
make_label(" | .___ _ | _ ___. |"),
|
||||||
|
make_label(" _./___>. / \\ | / \\ .<___\\._ "),
|
||||||
|
make_label(" / \\_/ | \\_/ \\"),
|
||||||
|
make_label(" ( .____. | .____. )"),
|
||||||
|
make_label(" ( /____ \\ _ | _ / ____\\ )"),
|
||||||
|
make_label(" _* \\.) / \\ | / \\ (./ *_"),
|
||||||
|
make_label(" / \\_/ | \\_/ \\"),
|
||||||
|
make_label(" ( .__. | .__. )"),
|
||||||
|
make_label(" ( / __ \\ | / __ \\ )"),
|
||||||
|
make_label(" * / \\.) O | O (./ \\ *"),
|
||||||
|
make_label(" / .___. | .___. \\"),
|
||||||
|
make_label(" ( / .---\\ | /---. \\ )"),
|
||||||
|
make_label(" *. ( | ) .*"),
|
||||||
|
make_label(" \\_ . | . _/"),
|
||||||
|
make_label(" \\ | /"),
|
||||||
|
make_label(" .")
|
||||||
|
],
|
||||||
|
monstera_lines_port.inner()
|
||||||
|
);
|
||||||
|
|
||||||
|
monstera_lines_port.outer()
|
||||||
|
.to_sequence()
|
||||||
|
.to_index()
|
||||||
|
.map_key(
|
||||||
|
|idx| Point2::new(0 as i16, *idx as i16),
|
||||||
|
|pt| if pt.x == 0 { Some(pt.y as usize) } else { None }
|
||||||
|
)
|
||||||
|
.flatten()
|
||||||
|
.map_item(
|
||||||
|
|p, at| at.add_style_back(TerminalStyle::fg_color((0,100,10)))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue