#ifndef SCENE_H #define SCENE_H #include "vector.h" #include "terrain.h" #include "gl.h" #include "shader.h" #include "gui.h" #include "tool.h" #include "scripting.h" #include "player.h" #include "model.h" #include #include #include using models::Model; class Scene { public: float pitch, yaw; Vector3 pos; float yvel; Terrain *terrain; FTFont *font; GUI *gui; Tool *tool; ConsoleWindow *console; ChatWindow *chat; Lua *lua; PlayerList players; bool running; bool grid; bool normals; bool render_terrain; bool gravity; bool dialog; bool flying; bool underwater; Terrain::Node *last_node; unsigned int last_time; unsigned int last_sort; Vector3 selected; bool do_select, show_selection; int sx, sy; GLShaderProgram terrain_program; GLShaderProgram water_program; GLShaderProgram tree_program; GLuint grass_texture, rock_texture, soil_texture, water_texture, marker_texture, placeholder_texture; std::map scene_textures; Scene(); ~Scene(); void lookat(); void move(float forward, float right, int steps); bool select(int x, int y, float& px, float& py, float& pz); void update(); void events(); void render(); GLuint load_texture(const char *filename); GLuint load_texture(aiTexture *texture); void sort_players(); }; #endif