world: fix chunk partitioning
parent
20ad88adf4
commit
ee0db9c8c1
Binary file not shown.
After Width: | Height: | Size: 187 KiB |
|
@ -31,6 +31,9 @@ Image texgen_build_block(uint32_t biome, uint32_t kind) {
|
|||
case BLOCK_KIND_HILL:{
|
||||
return LoadImageEco("rock");
|
||||
}break;
|
||||
case BLOCK_KIND_WATER:{
|
||||
return LoadImageEco("water");
|
||||
}break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,13 +27,18 @@ uint64_t player_spawn(char *name) {
|
|||
ecs_set(world_ecs(), e, Input, {0});
|
||||
ecs_add(world_ecs(), e, Player);
|
||||
Position *pos = ecs_get_mut(world_ecs(), e, Position, NULL);
|
||||
#if 1
|
||||
pos->x=rand() % world_dim();
|
||||
pos->y=rand() % world_dim();
|
||||
|
||||
#else
|
||||
pos->x=10;
|
||||
pos->y=10;
|
||||
#endif
|
||||
|
||||
librg_entity_owner_set(world_tracker(), e, (int64_t)e);
|
||||
librg_entity_radius_set(world_tracker(), e, 3);
|
||||
librg_entity_chunk_set(world_tracker(), e, librg_chunk_from_realpos(world_tracker(), pos->x, pos->y, 0));
|
||||
|
||||
|
||||
return (uint64_t)e;
|
||||
}
|
||||
|
||||
|
|
|
@ -154,10 +154,10 @@ int32_t world_init(int32_t seed, uint16_t chunk_size, uint16_t chunk_amount) {
|
|||
for (int y = 0; y < world.chunk_size; y += 1) {
|
||||
for (int x = 0; x < world.chunk_size; x += 1) {
|
||||
int chk = world.chunk_size * i;
|
||||
int chk_x = chk % world.chunk_amount;
|
||||
int chk_y = chk / world.chunk_amount;
|
||||
int chk_x = chk % world.dim;
|
||||
int chk_y = chk / world.dim;
|
||||
uint8_t *c = ecs_vector_add(&chunk->blocks, uint8_t);
|
||||
*c = world.data[(chk_y+y)*world.chunk_amount + (chk_x+x)];
|
||||
*c = world.data[(chk_y+y)*world.dim + (chk_x+x)];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -129,7 +129,7 @@ int32_t worldgen_test(world_data *wld) {
|
|||
uint8_t wall_id = blocks_find(BLOCK_BIOME_DEV, BLOCK_KIND_WALL);
|
||||
uint8_t grnd_id = blocks_find(BLOCK_BIOME_DEV, BLOCK_KIND_GROUND);
|
||||
uint8_t dirt_id = blocks_find(BLOCK_BIOME_DEV, BLOCK_KIND_DIRT);
|
||||
//uint8_t watr_id = blocks_find(BLOCK_BIOME_DEV, BLOCK_KIND_WATER);
|
||||
uint8_t watr_id = blocks_find(BLOCK_BIOME_DEV, BLOCK_KIND_WATER);
|
||||
|
||||
srand(world->seed);
|
||||
|
||||
|
@ -141,18 +141,18 @@ int32_t worldgen_test(world_data *wld) {
|
|||
world_fill_rect(dirt_id, 1, 1, world->dim-2, world->dim-2, shaper_noise50);
|
||||
|
||||
// water
|
||||
#if 0
|
||||
for (int i=0; i<RAND_RANGE(0, 12); i++) {
|
||||
world_fill_rect_anchor(watr_id, RAND_RANGE(0, world->dim), RAND_RANGE(0, world->dim), 4+RAND_RANGE(0,3), 4+RAND_RANGE(0,3), 0.5f, 0.5f, shaper_noise33);
|
||||
#if 1
|
||||
for (int i=0; i<RAND_RANGE(8, 22); i++) {
|
||||
world_fill_rect_anchor(watr_id, RAND_RANGE(0, world->dim), RAND_RANGE(0, world->dim), 4+RAND_RANGE(0,3), 4+RAND_RANGE(0,3), 0.5f, 0.5f, shaper_noise80);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
// hills
|
||||
#if 0
|
||||
const uint32_t HILLS_SIZE = 44;
|
||||
for (int i=0; i<RAND_RANGE(32, 224); i++) {
|
||||
world_fill_rect_anchor(wall_id, RAND_RANGE(0, world->dim), RAND_RANGE(0, world->dim), RAND_RANGE(0,HILLS_SIZE), RAND_RANGE(0,HILLS_SIZE), 0.5f, 0.5f, shaper_noise33);
|
||||
#if 1
|
||||
const uint32_t HILLS_SIZE = 21;
|
||||
for (int i=0; i<RAND_RANGE(8, 124); i++) {
|
||||
world_fill_rect_anchor(wall_id, RAND_RANGE(0, world->dim), RAND_RANGE(0, world->dim), RAND_RANGE(0,HILLS_SIZE), RAND_RANGE(0,HILLS_SIZE), 0.5f, 0.5f, shaper_noise50);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue