#include #include #include #include "PerlinNoise.hpp" #include "mainloop.h" #include "archive.h" #include "textures.h" #include "blocks.h" int blocks_tex; int blocks_size; int blocks_img_size[2]; double fluid_motion = 0; double fluid_frequency = 0.99*8; double fluid_octaves = 1; std::vector block_settings; const siv::PerlinNoise perlin; BlockSettings blockGetSettings(int id) { return block_settings[id]; } int load_image(const char* dir) { int w, h; loadArchiveImageGL(dir, 'N', w, h); } void blocks_tick(int *args) { // Make this happen again mainloopRegAction(blocks_tick, 10, 0); // Increase the fluid time for perlin noise fluid_motion += 1e-2; } void setup_block_settings() { BlockSettings b; // Set all the textures numbers int GRASS_TOP = 0; int GRASS_SIDE = 1; int ASPHELT_TOP = 2; int ASPHELT_SIDE = 3; int DIRT = 4; int GRAVEL = 5; int STONE = 6; int BARRIER = 7; int PLANT_GRASS = 8; int WATER = 9; int SAND = 10; // Create the queue of textures to load std::vector load_images; load_images.push_back("textures/blocks/grass_top.rimg"); load_images.push_back("textures/blocks/grass_side.rimg"); load_images.push_back("textures/blocks/asphelt_top.rimg"); load_images.push_back("textures/blocks/asphelt_side.rimg"); load_images.push_back("textures/blocks/dirt.rimg"); load_images.push_back("textures/blocks/gravel.rimg"); load_images.push_back("textures/blocks/stone.rimg"); load_images.push_back("textures/blocks/barrier.rimg"); load_images.push_back("textures/plants/grass.rimg"); load_images.push_back("textures/fluids/water.rimg"); load_images.push_back("textures/blocks/sand.rimg"); // Setup the big image int big_image_size; char* big_image; // Loop over the queue for(int i=0;i