From 284b235a8f7672090bc4f31e56d451bb21d8ee55 Mon Sep 17 00:00:00 2001 From: Physcik Date: Wed, 7 Jan 2026 01:35:41 +0500 Subject: build system upgrades --- .gitignore | 3 ++ Makefile | 5 +++ engine/Components/World.go | 68 ++++++++++++++++++++++++++++++++++++++++ engine/CoreObjects/GameObject.go | 8 +++++ engine/CoreObjects/Object.go | 8 ----- engine/GameObjects/World.go | 68 ---------------------------------------- engine/Settings/Flags.go | 11 +++++-- engine/main.go | 4 +-- 8 files changed, 95 insertions(+), 80 deletions(-) create mode 100644 .gitignore create mode 100644 engine/Components/World.go create mode 100644 engine/CoreObjects/GameObject.go delete mode 100644 engine/CoreObjects/Object.go delete mode 100644 engine/GameObjects/World.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..65e2a0a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# build result +RuinesOfRafdolon +Config.json diff --git a/Makefile b/Makefile index 6ac3d68..e3a4ceb 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,7 @@ +all: + cd engine; go build . + ln -f engine/Config.json . + ln -f engine/RuinesOfRafdolon . + run: cd engine; go run . diff --git a/engine/Components/World.go b/engine/Components/World.go new file mode 100644 index 0000000..015805d --- /dev/null +++ b/engine/Components/World.go @@ -0,0 +1,68 @@ +package components + +import ( + coreobjects "github.com/DegustatorPonos/RuinesOfRafdolon/CoreObjects" + rl "github.com/gen2brain/raylib-go/raylib" +) + +var texture rl.Texture2D + +type Tile struct { +} + +type World struct { + Tiles [][]Tile + Camera rl.Camera2D +} + +func (base *World) Create(_ coreobjects.SceneManager) { + var image = rl.LoadImage("tile.png") + texture = rl.LoadTextureFromImage(image) + rl.UnloadImage(image) + + base.Camera = rl.Camera2D{} + base.Camera.Target = rl.Vector2 { X: 0, Y: 0 } + base.Camera.Offset = rl.Vector2 { X: 0, Y: 0 } + base.Camera.Rotation = 0 + base.Camera.Zoom = 2 +} + +func (base *World) Destroy() { + rl.UnloadTexture(texture) +} + +func (base *World) Update() { + if rl.IsKeyDown(rl.KeyW) { + base.Camera.Target.Y -= 0.3 + } + if rl.IsKeyDown(rl.KeyS) { + base.Camera.Target.Y += 0.3 + } + if rl.IsKeyDown(rl.KeyA) { + base.Camera.Target.X -= 0.3 + } + if rl.IsKeyDown(rl.KeyD) { + base.Camera.Target.X += 0.3 + } +} + +func (base *World) Draw() { + rl.BeginMode2D(base.Camera) + defer rl.EndMode2D() + + for x, r := range base.Tiles { + for y, _ := range r { + rl.DrawTexture(texture, (int32(x) * 32), int32(y) * 32, rl.White) + } + } +} + +func CreateWorld(x int, y int) World { + var tiles = make([][]Tile, x) + for i := range tiles { + tiles[i] = make([]Tile, y) + } + return World { + Tiles: tiles, + } +} diff --git a/engine/CoreObjects/GameObject.go b/engine/CoreObjects/GameObject.go new file mode 100644 index 0000000..255a405 --- /dev/null +++ b/engine/CoreObjects/GameObject.go @@ -0,0 +1,8 @@ +package coreobjects + +type GameObject interface { + Create(SceneManager) + Destroy() + Update() + Draw() +} diff --git a/engine/CoreObjects/Object.go b/engine/CoreObjects/Object.go deleted file mode 100644 index 6f0a808..0000000 --- a/engine/CoreObjects/Object.go +++ /dev/null @@ -1,8 +0,0 @@ -package coreobjects - -type Object interface { - Create(SceneManager) - Destroy() - Update() - Draw() -} diff --git a/engine/GameObjects/World.go b/engine/GameObjects/World.go deleted file mode 100644 index 9ce16b0..0000000 --- a/engine/GameObjects/World.go +++ /dev/null @@ -1,68 +0,0 @@ -package gameobjects - -import ( - coreobjects "github.com/DegustatorPonos/RuinesOfRafdolon/CoreObjects" - rl "github.com/gen2brain/raylib-go/raylib" -) - -var texture rl.Texture2D - -type Tile struct { -} - -type Field struct { - Tiles [][]Tile - Camera rl.Camera2D -} - -func (base *Field) Create(_ coreobjects.SceneManager) { - var image = rl.LoadImage("tile.png") - texture = rl.LoadTextureFromImage(image) - rl.UnloadImage(image) - - base.Camera = rl.Camera2D{} - base.Camera.Target = rl.Vector2 { X: 0, Y: 0 } - base.Camera.Offset = rl.Vector2 { X: 0, Y: 0 } - base.Camera.Rotation = 0 - base.Camera.Zoom = 2 -} - -func (base *Field) Destroy() { - rl.UnloadTexture(texture) -} - -func (base *Field) Update() { - if rl.IsKeyDown(rl.KeyW) { - base.Camera.Target.Y -= 0.3 - } - if rl.IsKeyDown(rl.KeyS) { - base.Camera.Target.Y += 0.3 - } - if rl.IsKeyDown(rl.KeyA) { - base.Camera.Target.X -= 0.3 - } - if rl.IsKeyDown(rl.KeyD) { - base.Camera.Target.X += 0.3 - } -} - -func (base *Field) Draw() { - rl.BeginMode2D(base.Camera) - defer rl.EndMode2D() - - for x, r := range base.Tiles { - for y, _ := range r { - rl.DrawTexture(texture, (int32(x) * 32), int32(y) * 32, rl.White) - } - } -} - -func CreateField(x int, y int) Field { - var tiles = make([][]Tile, x) - for i := range tiles { - tiles[i] = make([]Tile, y) - } - return Field { - Tiles: tiles, - } -} diff --git a/engine/Settings/Flags.go b/engine/Settings/Flags.go index 9f4039e..6c5d1f4 100644 --- a/engine/Settings/Flags.go +++ b/engine/Settings/Flags.go @@ -22,7 +22,14 @@ func (base Flags) String() string { func readFlags() *Flags { - return &Flags { - SettingsFileLocation: *flag.String("c", "Config.json", "Configurtation file location"), + var outp = Flags{} + if flag.Lookup("c") == nil { + flag.StringVar(&outp.SettingsFileLocation, "c", "Config.json", "Configurtation file location") } + flag.Parse() + return &outp + + // return &Flags { + // SettingsFileLocation: *flag.String("config", "Config.json", "Configurtation file location"), + // } } diff --git a/engine/main.go b/engine/main.go index 47e07b3..8d11769 100644 --- a/engine/main.go +++ b/engine/main.go @@ -1,8 +1,8 @@ package main import ( + components "github.com/DegustatorPonos/RuinesOfRafdolon/Components" coreobjects "github.com/DegustatorPonos/RuinesOfRafdolon/CoreObjects" - gameobjects "github.com/DegustatorPonos/RuinesOfRafdolon/GameObjects" render "github.com/DegustatorPonos/RuinesOfRafdolon/Render" settings "github.com/DegustatorPonos/RuinesOfRafdolon/Settings" ) @@ -10,7 +10,7 @@ import ( func main() { settings.ReadSettings() // TEMPORARY SECTION - var field = gameobjects.CreateField(8, 8) + var field = components.CreateWorld(8, 8) var manager = coreobjects.InitSceneManager() render.InitWindow(manager, &field) -- cgit v1.3