#ifndef PIXELDEFENSE_GAME_STATE_H #define PIXELDEFENSE_GAME_STATE_H #include #include #include "entity_map.h" typedef enum InputState { INPUT_NONE, INPUT_PLACING, INPUT_DRAGGING, INPUT_SELECTED_UNITS, INPUT_SELECTED_OBJECT, } InputState; typedef struct Game { Camera2D camera; BzTileset terrainTileset; BzTileset buildingsTileset; BzTileset entitiesTileset; BzTileMap map; EntityMap entityMap; f32 frameDuration; ecs_entity_t entity; struct { InputState state; int building; bool buildingCanPlace; TilePosition buildingPos; TileSize buildingSize; Vector2 mouseDown; f32 mouseDownElapsed; } input; struct { i64 wood; i64 iron; i64 food; i64 gold; i64 pop; } resources; struct { BzObjectPool *pathData; } pools; f32 elapsed; } Game; extern ECS_COMPONENT_DECLARE(Game); #endif //PIXELDEFENSE_GAME_STATE_H