Added setup to house and WIP Furniture tiles

This commit is contained in:
Glaeder 2024-07-07 10:04:29 +02:00
parent 9f78a94c8d
commit 1cdb6156f8
6 changed files with 84 additions and 56 deletions

View file

@ -3,6 +3,7 @@ mod grid;
mod player;
mod room;
use comfy::EngineContext;
use grid::Grid;
use player::Player;
use room::Room;
@ -14,33 +15,39 @@ pub struct HouseState {
player: Player
}
impl Default for HouseState {
fn default() -> Self {
let room = Room::default();
pub fn setup(state: &mut crate::State, ctx: &mut EngineContext<'_>) {
let house = {
let room = Room::new(ctx);
let player = Player::new(&room);
Self { room, player}
}
HouseState { room, player}
};
state.house = Some(house);
}
pub fn draw(state: &crate::State, _engine: &comfy::EngineContext<'_>) {
pub fn draw(state: &crate::State, ctx: &comfy::EngineContext<'_>) {
if let Some(house) = &state.house {
//Draw House
state.house.room.draw();
house.room.draw();
//Draw Grid
//state.house.grid.draw();
//Draw Player
state.house.player.draw();
}
pub fn update(state: &mut crate::State, _engine: &mut comfy::EngineContext<'_>) {
state.house.player.update(&state.house.room.grid);
if state.house.player.is_moving_to_right_room(&state.house.room) {
state.house.room = Room::default();
state.house.player.reset_on_room(&state.house.room, true);
} else if state.house.player.is_moving_to_left_room(&state.house.room) {
state.house.room = Room::default();
state.house.player.reset_on_room(&state.house.room, false);
house.player.draw();
}
}
pub fn update(state: &mut crate::State, ctx: &mut comfy::EngineContext<'_>) {
if let Some(house) = &mut state.house {
house.player.update(&house.room.grid);
if house.player.is_moving_to_right_room(&house.room) {
house.room = Room::new(ctx);
house.player.reset_on_room(&house.room, true);
} else if house.player.is_moving_to_left_room(&house.room) {
house.room = Room::new(ctx);
house.player.reset_on_room(&house.room, false);
}
}
}