save
This commit is contained in:
parent
287b0d28d8
commit
303e39bd12
@ -10,7 +10,8 @@ use crate::{state::State, App};
|
|||||||
#[derive(Clone, Copy, Zeroable, Pod, Debug)]
|
#[derive(Clone, Copy, Zeroable, Pod, Debug)]
|
||||||
pub struct Vertex {
|
pub struct Vertex {
|
||||||
pub pos: [f32; 2],
|
pub pos: [f32; 2],
|
||||||
pub color: [f32; 4]
|
pub color: [f32; 4],
|
||||||
|
pub effect: u32, // 0: None, 1: Grayscale, 2: Scaled, 3: Grayscale + Scaled
|
||||||
}
|
}
|
||||||
impl Vertex {
|
impl Vertex {
|
||||||
const DESC: VertexBufferLayout<'static> = VertexBufferLayout {
|
const DESC: VertexBufferLayout<'static> = VertexBufferLayout {
|
||||||
|
@ -12,7 +12,8 @@ struct VertexOutput {
|
|||||||
@vertex
|
@vertex
|
||||||
fn vs_main(
|
fn vs_main(
|
||||||
@location(0) pos: vec2f,
|
@location(0) pos: vec2f,
|
||||||
@location(1) color: vec4f
|
@location(1) color: vec4f,
|
||||||
|
@location(2) effect: u32
|
||||||
) -> VertexOutput {
|
) -> VertexOutput {
|
||||||
var out: VertexOutput;
|
var out: VertexOutput;
|
||||||
out.color = color;
|
out.color = color;
|
||||||
@ -23,4 +24,4 @@ fn vs_main(
|
|||||||
@fragment
|
@fragment
|
||||||
fn fs_main(v: VertexOutput) -> @location(0) vec4f {
|
fn fs_main(v: VertexOutput) -> @location(0) vec4f {
|
||||||
return v.color;
|
return v.color;
|
||||||
}
|
}
|
||||||
|
@ -196,9 +196,6 @@ impl State {
|
|||||||
|
|
||||||
for (c, cd) in self.map.voronoi.iter_cells().zip(self.map.cells_data.iter()).filter(|(_,cd)| cd.kind != CellKind::Forest) {
|
for (c, cd) in self.map.voronoi.iter_cells().zip(self.map.cells_data.iter()).filter(|(_,cd)| cd.kind != CellKind::Forest) {
|
||||||
let mut color = cd.color();
|
let mut color = cd.color();
|
||||||
if self.ui.kind_selected != Kind::Terrain && self.ui.kind_selected != Kind::None {
|
|
||||||
color = rgba_to_grayscale(color);
|
|
||||||
}
|
|
||||||
if c.site() == self.selected_tile {
|
if c.site() == self.selected_tile {
|
||||||
color[0] = (color[0]+0.4).clamp(0., 1.);
|
color[0] = (color[0]+0.4).clamp(0., 1.);
|
||||||
color[1] = (color[1]+0.4).clamp(0., 1.);
|
color[1] = (color[1]+0.4).clamp(0., 1.);
|
||||||
@ -207,7 +204,7 @@ impl State {
|
|||||||
let vs = c.iter_vertices().collect::<Vec<_>>();
|
let vs = c.iter_vertices().collect::<Vec<_>>();
|
||||||
let i = self.vertices.len() as u32;
|
let i = self.vertices.len() as u32;
|
||||||
for v in vs.iter() {
|
for v in vs.iter() {
|
||||||
self.vertices.push(Vertex { pos: [v.x as f32, v.y as f32], color });
|
self.vertices.push(Vertex { pos: [v.x as f32, v.y as f32], color, effect:2 });
|
||||||
}
|
}
|
||||||
for v in 1..(vs.len()-1) as u32 {
|
for v in 1..(vs.len()-1) as u32 {
|
||||||
self.indices.push(i);
|
self.indices.push(i);
|
||||||
@ -230,7 +227,7 @@ impl State {
|
|||||||
let vs = c.iter_vertices().collect::<Vec<_>>();
|
let vs = c.iter_vertices().collect::<Vec<_>>();
|
||||||
let i = self.vertices.len() as u32;
|
let i = self.vertices.len() as u32;
|
||||||
for v in vs.iter() {
|
for v in vs.iter() {
|
||||||
self.vertices.push(Vertex { pos: [v.x as f32, v.y as f32], color });
|
self.vertices.push(Vertex { pos: [v.x as f32, v.y as f32], color, effect:2 });
|
||||||
}
|
}
|
||||||
for v in 1..(vs.len()-1) as u32 {
|
for v in 1..(vs.len()-1) as u32 {
|
||||||
self.indices.push(i);
|
self.indices.push(i);
|
||||||
@ -321,4 +318,4 @@ impl State {
|
|||||||
self.cells_entities.insert(cid, vec![eid]);
|
self.cells_entities.insert(cid, vec![eid]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -63,31 +63,31 @@ impl Entity {
|
|||||||
(
|
(
|
||||||
[
|
[
|
||||||
// back left leg
|
// back left leg
|
||||||
Vertex { pos: [-0.5, 0.3], color: dark },
|
Vertex { pos: [-0.5, 0.3], color: dark, effect:2 },
|
||||||
Vertex { pos: [-0.4 + (now.sin()*0.1), -0.7 + (now.cos().max(-0.5)*0.1)], color: dark },
|
Vertex { pos: [-0.4 + (now.sin()*0.1), -0.7 + (now.cos().max(-0.5)*0.1)], color: dark, effect:2 },
|
||||||
Vertex { pos: [-0.25, 0.1], color: dark },
|
Vertex { pos: [-0.25, 0.1], color: dark, effect:2 },
|
||||||
|
|
||||||
// back right leg
|
// back right leg
|
||||||
Vertex { pos: [-0.5, 0.3], color },
|
Vertex { pos: [-0.5, 0.3], color, effect:2 },
|
||||||
Vertex { pos: [-0.4 + ((now + 1.).sin()*0.1), -0.7 + ((now + 1.).cos().max(-0.5)*0.1)], color },
|
Vertex { pos: [-0.4 + ((now + 1.).sin()*0.1), -0.7 + ((now + 1.).cos().max(-0.5)*0.1)], color, effect:2 },
|
||||||
Vertex { pos: [-0.25, 0.1], color },
|
Vertex { pos: [-0.25, 0.1], color, effect:2 },
|
||||||
|
|
||||||
// front left leg
|
// front left leg
|
||||||
Vertex { pos: [0.3, 0.2], color: dark },
|
Vertex { pos: [0.3, 0.2], color: dark, effect:2 },
|
||||||
Vertex { pos: [0.4 + ((now-1.).sin()*0.1), -0.7 + ((now-1.).cos().max(-0.5)*0.1)], color: dark },
|
Vertex { pos: [0.4 + ((now-1.).sin()*0.1), -0.7 + ((now-1.).cos().max(-0.5)*0.1)], color: dark, effect:2 },
|
||||||
Vertex { pos: [0.5, 0.3], color: dark },
|
Vertex { pos: [0.5, 0.3], color: dark, effect:2 },
|
||||||
|
|
||||||
// front right leg
|
// front right leg
|
||||||
Vertex { pos: [0.3, 0.2], color },
|
Vertex { pos: [0.3, 0.2], color, effect:2 },
|
||||||
Vertex { pos: [0.4 + ((now-2.).sin()*0.1), -0.7 + ((now-2.).cos().max(-0.5)*0.1)], color },
|
Vertex { pos: [0.4 + ((now-2.).sin()*0.1), -0.7 + ((now-2.).cos().max(-0.5)*0.1)], color, effect:2 },
|
||||||
Vertex { pos: [0.5, 0.3], color },
|
Vertex { pos: [0.5, 0.3], color, effect:2 },
|
||||||
|
|
||||||
// body
|
// body
|
||||||
// 3
|
// 3
|
||||||
Vertex { pos: [-0.3, 0.], color },
|
Vertex { pos: [-0.3, 0.], color, effect:2 },
|
||||||
Vertex { pos: [0.4, -0.1], color },
|
Vertex { pos: [0.4, -0.1], color, effect:2 },
|
||||||
// 11
|
// 11
|
||||||
Vertex { pos: [0.3, 0.4], color },
|
Vertex { pos: [0.3, 0.4], color, effect:2 },
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
0,1,2,
|
0,1,2,
|
||||||
@ -104,31 +104,31 @@ impl Entity {
|
|||||||
(
|
(
|
||||||
[
|
[
|
||||||
// back left leg
|
// back left leg
|
||||||
Vertex { pos: [-0.5, 0.3], color: dark },
|
Vertex { pos: [-0.5, 0.3], color: dark, effect:2 },
|
||||||
Vertex { pos: [-0.4, -0.75], color: dark },
|
Vertex { pos: [-0.4, -0.75], color: dark, effect:2 },
|
||||||
Vertex { pos: [-0.25, 0.1], color: dark },
|
Vertex { pos: [-0.25, 0.1], color: dark, effect:2 },
|
||||||
|
|
||||||
// back right leg
|
// back right leg
|
||||||
Vertex { pos: [-0.5, 0.3], color },
|
Vertex { pos: [-0.5, 0.3], color, effect:2 },
|
||||||
Vertex { pos: [-0.4, -0.75], color },
|
Vertex { pos: [-0.4, -0.75], color, effect:2 },
|
||||||
Vertex { pos: [-0.25, 0.1], color },
|
Vertex { pos: [-0.25, 0.1], color, effect:2 },
|
||||||
|
|
||||||
// front left leg
|
// front left leg
|
||||||
Vertex { pos: [0.3, 0.2], color: dark },
|
Vertex { pos: [0.3, 0.2], color: dark, effect:2 },
|
||||||
Vertex { pos: [0.4, -0.75], color: dark },
|
Vertex { pos: [0.4, -0.75], color: dark, effect:2 },
|
||||||
Vertex { pos: [0.5, 0.3], color: dark },
|
Vertex { pos: [0.5, 0.3], color: dark, effect:2 },
|
||||||
|
|
||||||
// front right leg
|
// front right leg
|
||||||
Vertex { pos: [0.3, 0.2], color },
|
Vertex { pos: [0.3, 0.2], color, effect:2 },
|
||||||
Vertex { pos: [0.4, -0.75], color },
|
Vertex { pos: [0.4, -0.75], color, effect:2 },
|
||||||
Vertex { pos: [0.5, 0.3], color },
|
Vertex { pos: [0.5, 0.3], color, effect:2 },
|
||||||
|
|
||||||
// body
|
// body
|
||||||
// 3
|
// 3
|
||||||
Vertex { pos: [-0.3, 0.], color },
|
Vertex { pos: [-0.3, 0.], color, effect:2 },
|
||||||
Vertex { pos: [0.4, -0.1], color },
|
Vertex { pos: [0.4, -0.1], color, effect:2 },
|
||||||
// 11
|
// 11
|
||||||
Vertex { pos: [0.3, 0.4], color },
|
Vertex { pos: [0.3, 0.4], color, effect:2 },
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
0,1,2,
|
0,1,2,
|
||||||
@ -218,4 +218,4 @@ impl Entity {
|
|||||||
None
|
None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ use winit::event::{Touch, TouchPhase, WindowEvent};
|
|||||||
use crate::graphics::Vertex;
|
use crate::graphics::Vertex;
|
||||||
|
|
||||||
const BOTTOM_TAB_BAR_HEIGHT: f32 = 0.1;
|
const BOTTOM_TAB_BAR_HEIGHT: f32 = 0.1;
|
||||||
|
const SECONDARY_COLOR: [f32; 4] = [255./84., 255./33., 255./32., 1.];
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum Kind {
|
pub enum Kind {
|
||||||
@ -17,7 +18,7 @@ pub struct UI {
|
|||||||
impl UI {
|
impl UI {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Self {
|
Self {
|
||||||
kind_selected: Kind::None,
|
kind_selected: Kind::Entities,
|
||||||
touch: None
|
touch: None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -64,6 +65,8 @@ impl UI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn render(&self, vertices: &mut Vec<Vertex>, indices: &mut Vec<u32>) {
|
pub fn render(&self, vertices: &mut Vec<Vertex>, indices: &mut Vec<u32>) {
|
||||||
|
//let vs = [
|
||||||
|
// Vertex { color: SECONDARY_COLOR, pos: [] }
|
||||||
|
//];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user