eco2d/code/game/src/world/blocks.h

30 lines
825 B
C
Raw Normal View History

2021-05-04 17:41:30 +00:00
#pragma once
#include "system.h"
2021-11-02 11:49:03 +00:00
#include "assets.h"
2021-05-04 17:41:30 +00:00
typedef enum {
2021-07-27 16:34:31 +00:00
BLOCK_FLAG_COLLISION = (1 << 1),
BLOCK_FLAG_HAZARD = (1 << 2),
BLOCK_FLAG_ESSENTIAL = (1 << 3),
2021-05-04 17:41:30 +00:00
} block_flags;
2021-05-12 16:28:39 +00:00
int32_t blocks_setup(void);
void blocks_destroy(void);
2021-11-03 17:38:32 +00:00
uint16_t blocks_find(asset_id kind);
2021-05-04 17:41:30 +00:00
2021-11-03 17:38:32 +00:00
asset_id blocks_get_asset(uint16_t id);
char blocks_get_symbol(uint16_t id);
uint32_t blocks_get_flags(uint16_t id);
float blocks_get_drag(uint16_t id);
float blocks_get_friction(uint16_t id);
float blocks_get_bounce(uint16_t id);
float blocks_get_velx(uint16_t id);
float blocks_get_vely(uint16_t id);
2021-05-12 16:28:39 +00:00
// NOTE(zaklaus): viewer-related functions
2021-11-03 17:38:32 +00:00
void *blocks_get_img(uint16_t id);
2021-07-18 18:30:27 +00:00
2021-11-03 17:38:32 +00:00
void blocks_build_chunk_tex(uint64_t id, uint16_t *blocks, void *view);
2021-07-18 18:30:27 +00:00
void *blocks_get_chunk_tex(uint64_t id);
void blocks_remove_chunk_tex(uint64_t id);