Static World Gen and Display for the Overworld #5
4 changed files with 46 additions and 4 deletions
|
@ -1,9 +1,23 @@
|
|||
use comfy::{draw_circle, vec2, EngineContext, GREEN};
|
||||
|
||||
use crate::game::ZLayer;
|
||||
|
||||
pub mod worldgen;
|
||||
|
||||
pub fn draw(_state: &crate::State, _engine: &EngineContext<'_>) {
|
||||
pub fn draw(state: &crate::State, _engine: &comfy::EngineContext) {
|
||||
draw_circle(vec2(0.0, 0.0), 0.5, GREEN, 0);
|
||||
for (coords, tile) in state.overworld.iter_tiles() {
|
||||
for (i, texture) in tile.textures.iter().rev().enumerate() {
|
||||
let i = i as i32;
|
||||
draw_sprite(
|
||||
*texture,
|
||||
coords.as_vec2(),
|
||||
Default::default(),
|
||||
ZLayer::MapMax - i,
|
||||
Vec2::ONE
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn update(_state: &mut crate::State, _engine: &mut EngineContext<'_>) {}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
use comfy::{IVec2, UVec2};
|
||||
use comfy::{IVec2, TextureHandle, UVec2};
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
enum MovementCost {
|
||||
pub enum MovementCost {
|
||||
/// No movement possible - cost infinitely high.
|
||||
Infinite,
|
||||
/// There is a path for this movement - movement is cheap.
|
||||
|
@ -13,7 +14,9 @@ enum MovementCost {
|
|||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
struct Tile;
|
||||
pub struct Tile {
|
||||
pub textures: Vec<TextureHandle>
|
||||
}
|
||||
|
||||
impl Tile {
|
||||
pub fn can_stand_inside(&self) -> bool {
|
||||
|
|
24
src/game.rs
24
src/game.rs
|
@ -1,3 +1,5 @@
|
|||
use std::ops::Sub;
|
||||
|
||||
use comfy::*;
|
||||
|
||||
use crate::{
|
||||
|
@ -5,6 +7,28 @@ use crate::{
|
|||
State
|
||||
};
|
||||
|
||||
#[repr(i32)]
|
||||
pub enum ZLayer {
|
||||
MapMax = -1,
|
||||
Human = 0,
|
||||
Ghost = 1
|
||||
}
|
||||
|
||||
impl From<ZLayer> for i32 {
|
||||
fn from(value: ZLayer) -> Self {
|
||||
// safe because #[repr(i32)]
|
||||
value as i32
|
||||
}
|
||||
}
|
||||
|
||||
impl Sub<i32> for ZLayer {
|
||||
type Output = i32;
|
||||
|
||||
fn sub(self, other: i32) -> Self::Output {
|
||||
i32::from(self) - other
|
||||
}
|
||||
}
|
||||
|
||||
pub fn update(state: &mut State, engine: &mut EngineContext<'_>) {
|
||||
match state.activity {
|
||||
Activity::House => house::update(state, engine),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#[allow(dead_code, unused_variables)]
|
||||
#![warn(rust_2018_idioms)]
|
||||
#![forbid(clippy::wildcard_imports, elided_lifetimes_in_paths, unsafe_code)]
|
||||
|
||||
|
|
Loading…
Reference in a new issue