Techneck/code/source-c/state.h

62 lines
1.3 KiB
C
Raw Normal View History

2023-10-10 18:01:15 +00:00
#ifndef TC_STATE_H
#define TC_STATE_H
#include <stdbool.h>
#include <stdint.h>
#include <SDL2/SDL.h>
#include <assets.h>
#include <shaders.h>
2023-10-17 14:37:19 +00:00
#include <entity/entity.h>
#include <blocks.h>
2023-10-17 14:37:19 +00:00
#include <world/world.h>
#include <utility/utility.h>
2023-10-10 18:01:15 +00:00
typedef struct tc_camera
{
tc_vec3f_s position;
tc_vec3f_s rotation;
2023-10-10 18:01:15 +00:00
float fov;
} tc_camera_s;
typedef struct tc_renderer
{
2023-10-14 14:38:38 +00:00
tc_camera_s *active_camera;
2023-10-10 18:01:15 +00:00
tc_shader_program_s draw_shader;
SDL_Window *window;
SDL_GLContext gl_context;
} tc_renderer_s;
typedef struct
{
tc_renderer_s renderer;
tc_asset_storage_s asset_storage;
2023-10-10 19:23:07 +00:00
tc_block_registry_s block_registry;
2023-10-14 13:04:52 +00:00
tc_entity_registry_s entity_registry;
2023-10-17 20:13:54 +00:00
// tc_world_s *main_world;
2023-10-14 14:38:38 +00:00
tc_entity_s *viewer;
tc_entity_s *player;
2023-10-10 18:01:15 +00:00
2023-10-15 12:41:53 +00:00
tc_hooklist_s on_world_create;
2023-10-14 19:17:30 +00:00
uint16_t fps;
uint16_t tps;
tc_image_s *block_texture_atlas;
2023-10-10 18:01:15 +00:00
} techneck_s;
extern techneck_s tc_game_state_g;
2023-10-12 06:18:43 +00:00
void tc_init ();
void tc_cleanup ();
void tc_load_textures ();
2023-10-10 18:01:15 +00:00
#endif