/*
    Hurry Curry! - a game about cooking
    Copyright 2024 metamuffin
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, version 3 of the License only.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.
    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see .
*/
use super::{Entity, EntityContext};
use crate::message::TrError;
use anyhow::Result;
use hurrycurry_protocol::{glam::IVec2, Menu, PacketC, PlayerID};
#[derive(Debug, Clone)]
pub struct Book(pub IVec2);
impl Entity for Book {
    fn interact(
        &mut self,
        c: EntityContext<'_>,
        pos: Option,
        _player: PlayerID,
    ) -> Result {
        if pos == Some(self.0) {
            if let Some(r) = c.replies {
                r.push(PacketC::Menu(Menu::Book));
            }
            return Ok(true);
        }
        Ok(false)
    }
}