diff options
Diffstat (limited to 'engine/main.go')
| -rw-r--r-- | engine/main.go | 70 |
1 files changed, 67 insertions, 3 deletions
diff --git a/engine/main.go b/engine/main.go index 8d11769..86d3b2f 100644 --- a/engine/main.go +++ b/engine/main.go @@ -1,18 +1,82 @@ package main import ( - components "github.com/DegustatorPonos/RuinesOfRafdolon/Components" + world "github.com/DegustatorPonos/RuinesOfRafdolon/Components/World" coreobjects "github.com/DegustatorPonos/RuinesOfRafdolon/CoreObjects" render "github.com/DegustatorPonos/RuinesOfRafdolon/Render" settings "github.com/DegustatorPonos/RuinesOfRafdolon/Settings" + rl "github.com/gen2brain/raylib-go/raylib" ) func main() { settings.ReadSettings() // TEMPORARY SECTION - var field = components.CreateWorld(8, 8) + var descriptor = world.Descriptor { + TileSize: rl.Vector2 { X: 32, Y: 32 }, + Textures: map[int]string{ + 0: "assets/tile.png", + 1: "assets/water.png", + }, + WorldMap: [][]world.TileDescriptor { + []world.TileDescriptor { + world.TileDescriptor{ + TextureId: 0, + }, + world.TileDescriptor{ + TextureId: 0, + }, + }, + []world.TileDescriptor { + world.TileDescriptor{ + TextureId: 1, + }, + world.TileDescriptor{ + TextureId: 1, + }, + }, + }, + } + + // var field = CreateWorld(8, 8) + var field = descriptor.GenerateMap() var manager = coreobjects.InitSceneManager() - render.InitWindow(manager, &field) + render.InitWindow(manager, field) +} + +// ==================== TEMPORARY SECTION ==================== + +var TileSize = rl.Vector2 { X: 32, Y: 32 } + +type DefaultTile struct { + Position rl.Vector2 +} + +func (base *DefaultTile) Init(pos rl.Vector2) { + base.Position = pos +} + +func (base *DefaultTile) Update() { } +func (base *DefaultTile) Draw() { + rl.DrawTexture(world.Texture, + int32(base.Position.X) * int32(TileSize.X), + int32(base.Position.Y) * int32(TileSize.Y), + rl.White) +} + +func CreateWorld(x int, y int) world.World { + var tiles = make([][]world.Tile, x) + for i := range tiles { + tiles[i] = make([]world.Tile, y) + for j := range tiles[i] { + tiles[i][j] = &DefaultTile{ + Position: rl.Vector2{ X: float32(j), Y: float32(i) }, + } + } + } + return world.World { + Tiles: tiles, + } +} |
