Some refactor again
This commit is contained in:
parent
e8ca11894d
commit
ffc39fccaf
@ -54,6 +54,8 @@ using namespace glm;
|
|||||||
#include "player_control.h"
|
#include "player_control.h"
|
||||||
|
|
||||||
|
|
||||||
|
float gravity = 19.6f;
|
||||||
|
|
||||||
int WIDTH = 1280;
|
int WIDTH = 1280;
|
||||||
int HEIGHT = 720;
|
int HEIGHT = 720;
|
||||||
|
|
||||||
@ -71,9 +73,11 @@ void write_world(World* world, Level* level){
|
|||||||
}
|
}
|
||||||
|
|
||||||
wfile->write();
|
wfile->write();
|
||||||
|
|
||||||
|
world->wfile->writePlayer(level->player);
|
||||||
}
|
}
|
||||||
|
|
||||||
void update_level(World* world, Level* level, VoxelRenderer* renderer, vec3 position, float delta, long frame){
|
void update_level(World* world, Level* level, vec3 position, float delta, long frame){
|
||||||
update_controls(level->physics, level->chunks, level->player, delta);
|
update_controls(level->physics, level->chunks, level->player, delta);
|
||||||
update_interaction(level, lineBatch);
|
update_interaction(level, lineBatch);
|
||||||
|
|
||||||
@ -85,52 +89,60 @@ void update_level(World* world, Level* level, VoxelRenderer* renderer, vec3 posi
|
|||||||
level->chunksController->loadVisible(world->wfile);
|
level->chunksController->loadVisible(world->wfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Level* load_level(World* world, Player* player) {
|
||||||
|
Level* level = new Level(player, new Chunks(34,1,34, 0,0,0), new PhysicsSolver(vec3(0, -gravity, 0)));
|
||||||
|
world->wfile->readPlayer(player);
|
||||||
|
|
||||||
int main() {
|
Camera* camera = player->camera;
|
||||||
setup_definitions();
|
camera->rotation = mat4(1.0f);
|
||||||
|
camera->rotate(player->camY, player->camX, 0);
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int initialize(Assets*& assets){
|
||||||
Audio::initialize();
|
Audio::initialize();
|
||||||
|
|
||||||
Window::initialize(WIDTH, HEIGHT, "Window 2.0");
|
Window::initialize(WIDTH, HEIGHT, "Window 2.0");
|
||||||
Events::initialize();
|
Events::initialize();
|
||||||
|
|
||||||
|
assets = new Assets();
|
||||||
std::cout << "-- loading assets" << std::endl;
|
std::cout << "-- loading assets" << std::endl;
|
||||||
Assets* assets = new Assets();
|
|
||||||
int result = initialize_assets(assets);
|
int result = initialize_assets(assets);
|
||||||
if (result){
|
if (result){
|
||||||
delete assets;
|
delete assets;
|
||||||
Window::terminate();
|
Window::terminate();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
setup_definitions();
|
||||||
|
|
||||||
|
Assets* assets;
|
||||||
|
int status = initialize(assets);
|
||||||
|
if (status) return status;
|
||||||
|
|
||||||
std::cout << "-- loading world" << std::endl;
|
std::cout << "-- loading world" << std::endl;
|
||||||
|
vec3 playerPosition = vec3(-320,200,32);
|
||||||
Camera* camera = new Camera(vec3(-320,200,32), radians(90.0f));
|
Camera* camera = new Camera(playerPosition, radians(90.0f));
|
||||||
World* world = new World("world-1", "world/");
|
World* world = new World("world-1", "world/");
|
||||||
Player* player = new Player(vec3(camera->position), 4.0f, camera);
|
Player* player = new Player(playerPosition, 4.0f, camera);
|
||||||
Level* level = new Level(player, new Chunks(34,1,34, 0,0,0), new PhysicsSolver(vec3(0, -9.8f*2.0f, 0)));
|
Level* level = load_level(world, player);
|
||||||
|
|
||||||
world->wfile->readPlayer(player);
|
|
||||||
camera->rotation = mat4(1.0f);
|
|
||||||
camera->rotate(player->camY, player->camX, 0);
|
|
||||||
|
|
||||||
std::cout << "-- preparing systems" << std::endl;
|
std::cout << "-- preparing systems" << std::endl;
|
||||||
|
|
||||||
VoxelRenderer renderer(1024*1024);
|
|
||||||
|
|
||||||
init_renderer();
|
init_renderer();
|
||||||
|
|
||||||
float lastTime = glfwGetTime();
|
float lastTime = glfwGetTime();
|
||||||
float delta = 0.0f;
|
float delta = 0.0f;
|
||||||
|
|
||||||
long frame = 0;
|
long frame = 0;
|
||||||
|
|
||||||
bool occlusion = false;
|
bool occlusion = false;
|
||||||
bool devdata = false;
|
bool devdata = false;
|
||||||
|
|
||||||
glfwSwapInterval(0);
|
glfwSwapInterval(0);
|
||||||
|
|
||||||
std::cout << "-- initializing finished" << std::endl;
|
std::cout << "-- initializing finished" << std::endl;
|
||||||
|
|
||||||
while (!Window::isShouldClose()){
|
while (!Window::isShouldClose()){
|
||||||
frame++;
|
frame++;
|
||||||
float currentTime = glfwGetTime();
|
float currentTime = glfwGetTime();
|
||||||
@ -145,7 +157,7 @@ int main() {
|
|||||||
devdata = !devdata;
|
devdata = !devdata;
|
||||||
}
|
}
|
||||||
|
|
||||||
update_level(world, level, &renderer, camera->position, delta, frame);
|
update_level(world, level, camera->position, delta, frame);
|
||||||
draw_world(world, level, camera, assets, occlusion);
|
draw_world(world, level, camera, assets, occlusion);
|
||||||
draw_hud(world, level, assets, devdata, fps);
|
draw_hud(world, level, assets, devdata, fps);
|
||||||
|
|
||||||
@ -153,13 +165,10 @@ int main() {
|
|||||||
Events::pullEvents();
|
Events::pullEvents();
|
||||||
}
|
}
|
||||||
std::cout << "-- saving world" << std::endl;
|
std::cout << "-- saving world" << std::endl;
|
||||||
|
|
||||||
world->wfile->writePlayer(player);
|
|
||||||
write_world(world, level);
|
write_world(world, level);
|
||||||
delete world;
|
delete world;
|
||||||
|
|
||||||
std::cout << "-- shutting down" << std::endl;
|
std::cout << "-- shutting down" << std::endl;
|
||||||
|
|
||||||
delete assets;
|
delete assets;
|
||||||
finalize_renderer();
|
finalize_renderer();
|
||||||
Audio::finalize();
|
Audio::finalize();
|
||||||
|
|||||||
@ -46,6 +46,7 @@ int uiscale = 2;
|
|||||||
LineBatch *lineBatch;
|
LineBatch *lineBatch;
|
||||||
Batch2D *batch;
|
Batch2D *batch;
|
||||||
Camera *uicamera;
|
Camera *uicamera;
|
||||||
|
VoxelRenderer *renderer;
|
||||||
|
|
||||||
void init_renderer(){
|
void init_renderer(){
|
||||||
crosshair = new Mesh(vertices, 4, attrs);
|
crosshair = new Mesh(vertices, 4, attrs);
|
||||||
@ -55,6 +56,8 @@ void init_renderer(){
|
|||||||
uicamera = new Camera(glm::vec3(), Window::height / uiscale);
|
uicamera = new Camera(glm::vec3(), Window::height / uiscale);
|
||||||
uicamera->perspective = false;
|
uicamera->perspective = false;
|
||||||
uicamera->flipped = true;
|
uicamera->flipped = true;
|
||||||
|
|
||||||
|
renderer = new VoxelRenderer(1024*1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -62,6 +65,7 @@ void finalize_renderer(){
|
|||||||
delete crosshair;
|
delete crosshair;
|
||||||
delete lineBatch;
|
delete lineBatch;
|
||||||
delete batch;
|
delete batch;
|
||||||
|
delete renderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw_chunk(size_t index, Camera* camera, Shader* shader, bool occlusion){
|
void draw_chunk(size_t index, Camera* camera, Shader* shader, bool occlusion){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user