mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
feece604be
Former-commit-id: e1526ec5f865904f11ab6a1507ecdc1a52acb28d
66 lines
1.5 KiB
Rust
66 lines
1.5 KiB
Rust
use std::ops::{Add, Sub, Mul};
|
|
use vek::*;
|
|
use veloren_world::World;
|
|
|
|
const W: usize = 640;
|
|
const H: usize = 480;
|
|
|
|
fn main() {
|
|
let world = World::generate(0);
|
|
|
|
let mut win = minifb::Window::new(
|
|
"World Viewer",
|
|
W, H,
|
|
minifb::WindowOptions::default(),
|
|
).unwrap();
|
|
|
|
let mut focus = Vec2::zero();
|
|
let mut gain = 1.0;
|
|
|
|
while win.is_open() {
|
|
let mut buf = [0; W * H];
|
|
|
|
for i in 0..W {
|
|
for j in 0..H {
|
|
let pos = focus + Vec2::new(i as i32, j as i32) * 4;
|
|
|
|
let alt = world
|
|
.sim()
|
|
.sample(pos)
|
|
.map(|sample| sample
|
|
.alt
|
|
.sub(64.0)
|
|
.add(gain)
|
|
.mul(0.7)
|
|
.max(0.0)
|
|
.min(255.0) as u8)
|
|
.unwrap_or(0);
|
|
|
|
buf[j * W + i] = u32::from_le_bytes([alt; 4]);
|
|
}
|
|
}
|
|
|
|
let spd = 32;
|
|
if win.is_key_down(minifb::Key::W) {
|
|
focus.y -= spd;
|
|
}
|
|
if win.is_key_down(minifb::Key::A) {
|
|
focus.x -= spd;
|
|
}
|
|
if win.is_key_down(minifb::Key::S) {
|
|
focus.y += spd;
|
|
}
|
|
if win.is_key_down(minifb::Key::D) {
|
|
focus.x += spd;
|
|
}
|
|
if win.is_key_down(minifb::Key::Q) {
|
|
gain += 10.0;
|
|
}
|
|
if win.is_key_down(minifb::Key::E) {
|
|
gain -= 10.0;
|
|
}
|
|
|
|
win.update_with_buffer(&buf).unwrap();
|
|
}
|
|
}
|