extern crate keeshond;
extern crate keeshond_datapack;
extern crate num;
extern crate strum;
extern crate confy;
extern crate image;
extern crate palette;
extern crate toodee;
#[macro_use] extern crate try_or;
#[macro_use] extern crate serde_derive;
#[macro_use] extern crate strum_macros;
#[macro_use] extern crate log;

use keeshond::gameloop::{Gameloop, GameInfo};
use keeshond::renderer::ViewportMode;
use crate::editorgui::EditorGui;

mod util;
mod editorgui;
mod document;
mod wizard;

////////////////////////////////////////


fn main()
{
    let gameinfo = GameInfo
    {
        package_name : "keeshond_editor",
        friendly_name : "Keeshond Game Editor",
        base_width : 1280,
        base_height : 720,
        viewport_mode : ViewportMode::OneToOne,
        texture_filtering : false,
        allow_system_sleep : true,
        low_energy_app : true,
        .. Default::default()
    };
    
    let mut gameloop = Gameloop::new(gameinfo);

    EditorGui::set_scene(gameloop.control_mut());

    gameloop.run();
}
