Fix all clippy warnings: collapsible_if, for_kv_map, vec_init_then_push, let_and_return, manual_div_ceil, useless_conversion, needless_borrows, manual_is_multiple_of, new_without_default, unnecessary_lazy_evaluations
This commit is contained in:
parent
2d2057ee87
commit
887a37e64c
9 changed files with 49 additions and 53 deletions
|
|
@ -13,18 +13,18 @@ impl TerrafierApp {
|
|||
|
||||
pub fn undo(&mut self) {
|
||||
if let Some(op) = self.undo_stack.pop_back() {
|
||||
if let Some(ref mut world) = self.world {
|
||||
if let Some(dim) = world.overworld_mut() {
|
||||
let inv = op.inverse();
|
||||
if let Err(e) = inv.apply(dim) {
|
||||
self.status_message = format!("Undo error: {:?}", e);
|
||||
self.undo_stack.push_back(op);
|
||||
return;
|
||||
}
|
||||
self.redo_stack.push(op);
|
||||
self.status_message = "Undo".to_string();
|
||||
if let Some(ref mut world) = self.world
|
||||
&& let Some(dim) = world.overworld_mut()
|
||||
{
|
||||
let inv = op.inverse();
|
||||
if let Err(e) = inv.apply(dim) {
|
||||
self.status_message = format!("Undo error: {:?}", e);
|
||||
self.undo_stack.push_back(op);
|
||||
return;
|
||||
}
|
||||
self.redo_stack.push(op);
|
||||
self.status_message = "Undo".to_string();
|
||||
return;
|
||||
}
|
||||
self.undo_stack.push_back(op);
|
||||
self.status_message = "Undo error: world has no overworld".to_string();
|
||||
|
|
@ -35,17 +35,17 @@ impl TerrafierApp {
|
|||
|
||||
pub fn redo(&mut self) {
|
||||
if let Some(op) = self.redo_stack.pop() {
|
||||
if let Some(ref mut world) = self.world {
|
||||
if let Some(dim) = world.overworld_mut() {
|
||||
if let Err(e) = op.apply(dim) {
|
||||
self.status_message = format!("Redo error: {:?}", e);
|
||||
self.redo_stack.push(op);
|
||||
return;
|
||||
}
|
||||
self.undo_stack.push_back(op);
|
||||
self.status_message = "Redo".to_string();
|
||||
if let Some(ref mut world) = self.world
|
||||
&& let Some(dim) = world.overworld_mut()
|
||||
{
|
||||
if let Err(e) = op.apply(dim) {
|
||||
self.status_message = format!("Redo error: {:?}", e);
|
||||
self.redo_stack.push(op);
|
||||
return;
|
||||
}
|
||||
self.undo_stack.push_back(op);
|
||||
self.status_message = "Redo".to_string();
|
||||
return;
|
||||
}
|
||||
self.redo_stack.push(op);
|
||||
self.status_message = "Redo error: world has no overworld".to_string();
|
||||
|
|
|
|||
|
|
@ -71,16 +71,8 @@ impl eframe::App for TerrafierApp {
|
|||
&& let Some(tile) = world.dimensions[0].tiles.values().next()
|
||||
{
|
||||
renderer.render(
|
||||
&tile
|
||||
.heightmap
|
||||
.as_slice()
|
||||
.try_into()
|
||||
.unwrap_or_else(|_| [0; 16384]),
|
||||
&tile
|
||||
.terrain
|
||||
.as_slice()
|
||||
.try_into()
|
||||
.unwrap_or_else(|_| [0; 16384]),
|
||||
&tile.heightmap.as_slice().try_into().unwrap_or([0; 16384]),
|
||||
&tile.terrain.as_slice().try_into().unwrap_or([0; 16384]),
|
||||
self.show_heightmap,
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ fn layer_value(
|
|||
) -> Option<f32> {
|
||||
let layer_id = LAYER_IDS[layer_idx];
|
||||
let buf = tile.layer_data.get(&layer_id)?;
|
||||
let val = match buf {
|
||||
match buf {
|
||||
LayerBuffer::Bit(data) => {
|
||||
let word = data.get(idx / 64)?;
|
||||
Some(if (word >> (idx % 64)) & 1 != 0 {
|
||||
|
|
@ -35,7 +35,7 @@ fn layer_value(
|
|||
}
|
||||
LayerBuffer::Nibble(data) => {
|
||||
let byte = *data.get(idx / 2)?;
|
||||
let nib = if idx % 2 == 0 {
|
||||
let nib = if idx.is_multiple_of(2) {
|
||||
byte & 0x0F
|
||||
} else {
|
||||
(byte >> 4) & 0x0F
|
||||
|
|
@ -47,8 +47,7 @@ fn layer_value(
|
|||
Some(v / 255.0)
|
||||
}
|
||||
LayerBuffer::Int(_) => None,
|
||||
};
|
||||
val
|
||||
}
|
||||
}
|
||||
|
||||
fn layer_overlay(layer_idx: usize, value: f32) -> Option<(u8, u8, u8)> {
|
||||
|
|
@ -152,17 +151,16 @@ pub fn render(ui: &mut egui::Ui, app: &mut crate::app::TerrafierApp) {
|
|||
};
|
||||
|
||||
for li in 0..6 {
|
||||
if app.layer_visible[li] {
|
||||
if let Some(val) = layer_value(tile, idx, li) {
|
||||
if let Some(over) = layer_overlay(li, val) {
|
||||
let alpha = if val > 0.0 {
|
||||
(val * 0.6 + 0.2).min(0.8)
|
||||
} else {
|
||||
0.0
|
||||
};
|
||||
(r, g, b) = blend_overlay((r, g, b), over, alpha);
|
||||
}
|
||||
}
|
||||
if app.layer_visible[li]
|
||||
&& let Some(val) = layer_value(tile, idx, li)
|
||||
&& let Some(over) = layer_overlay(li, val)
|
||||
{
|
||||
let alpha = if val > 0.0 {
|
||||
(val * 0.6 + 0.2).min(0.8)
|
||||
} else {
|
||||
0.0
|
||||
};
|
||||
(r, g, b) = blend_overlay((r, g, b), over, alpha);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue