56 lines
1.4 KiB
Odin
56 lines
1.4 KiB
Odin
package main
|
|
|
|
WORLD_SIZE_X :: 1000
|
|
WORLD_SIZE_Y :: 1000
|
|
|
|
ground_layer_grid: [][]Tile
|
|
ground_tilemap_sheet: TilemapSpritesheet
|
|
|
|
interactables_layer_grid: [][]Tile
|
|
interactables_tilemap_sheet: TilemapSpritesheet
|
|
|
|
init_world :: proc() {
|
|
ground_tilemap_sheet = load_tilemap_sheet(
|
|
"assets/tiles/master_tilemap.png",
|
|
TILEMAP_TILE_SIZE,
|
|
TILEMAP_TILE_SIZE,
|
|
)
|
|
|
|
interactables_tilemap_sheet = load_tilemap_sheet(
|
|
"assets/interactables/interactables_spritesheet.png",
|
|
TILEMAP_TILE_SIZE,
|
|
TILEMAP_TILE_SIZE,
|
|
)
|
|
|
|
ground_layer_grid = create_tile_grid(WORLD_SIZE_X, WORLD_SIZE_Y, ground_tile)
|
|
interactables_layer_grid = create_tile_grid(WORLD_SIZE_X, WORLD_SIZE_Y, nothing_tile)
|
|
|
|
set_tile(interactables_layer_grid, 2, 2, plant_tile)
|
|
set_tile(interactables_layer_grid, 4, 2, plant_2_tile)
|
|
set_tile(interactables_layer_grid, 6, 2, plant_3_tile)
|
|
}
|
|
|
|
update_world :: proc(delta: f32) {
|
|
update_tile_grid(
|
|
ground_layer_grid,
|
|
&player.camera,
|
|
f32(ground_tilemap_sheet.tile_width),
|
|
f32(ground_tilemap_sheet.tile_height),
|
|
delta,
|
|
)
|
|
|
|
update_tile_grid(
|
|
interactables_layer_grid,
|
|
&player.camera,
|
|
f32(interactables_tilemap_sheet.tile_width),
|
|
f32(interactables_tilemap_sheet.tile_height),
|
|
delta,
|
|
)
|
|
}
|
|
|
|
draw_world :: proc() {
|
|
draw_tile_grid(&ground_tilemap_sheet, ground_layer_grid, &player.camera)
|
|
draw_tile_grid(&interactables_tilemap_sheet, interactables_layer_grid, &player.camera)
|
|
}
|
|
|