From 30404ea0f5cc57bfc3d02d9c54f9518e7f2f59c5 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 2 Mar 2022 09:41:04 -0600 Subject: [PATCH] borger --- .vscode/tasks.json | 14 +++++++++++++- run_tree/assets/images/spritesheet.png | Bin 4288 -> 4568 bytes run_tree/run.sh | 8 +++++++- run_tree/scenes/default.items | 19 ++++++++++++++++--- run_tree/scenes/quick_save_new.scene | 9 ++++++++- src/entity/components/patron.onyx | 18 ++++++------------ src/entity/items.onyx | 18 ++---------------- src/main.onyx | 2 ++ 8 files changed, 54 insertions(+), 34 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 29e03a4..c78e890 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -4,17 +4,29 @@ "version": "2.0.0", "tasks": [ { - "label": "Run game", + "label": "Build game", "type": "shell", "options": { "cwd": "${workspaceFolder}/run_tree" }, "problemMatcher": "$onyx", "command": "./run.sh", + "args": ["build"], "group": { "kind": "build", "isDefault": true } + }, + { + "label": "run", + "type": "shell", + "options": { + "cwd": "${workspaceFolder}/run_tree" + }, + "problemMatcher": "$onyx", + "command": "./run.sh", + "args": ["run"], + "dependsOn": "Build game", } ] } \ No newline at end of file diff --git a/run_tree/assets/images/spritesheet.png b/run_tree/assets/images/spritesheet.png index 10caf54a575751116b3c6918780b27f0d3e6fd8e..170834d4669f652c03141492415243b6ba6040d3 100644 GIT binary patch literal 4568 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 z2ax~UssBmPB-RT7>-5>7MCHget_item(order_item); - texture, loaded := texture_lookup(item_data.texture_path); - - immediate_set_color(item_data.color); - if !loaded { - immediate_rectangle(r.x, r.y, 16, 16); - } else { - tp := item_data.texture_pos; - ts := item_data.texture_size; - immediate_subimage(^texture, r.x, r.y, r.w, r.h, - tp.x, tp.y, ts.x, ts.y); - } + item_data.sprite->render(r); } } } \ No newline at end of file diff --git a/src/entity/items.onyx b/src/entity/items.onyx index eebbf0a..dfa5d99 100644 --- a/src/entity/items.onyx +++ b/src/entity/items.onyx @@ -5,10 +5,7 @@ use package core Item :: struct { name: str; - color := Color.{ 1, 1, 1 }; - texture_path : str; - texture_pos := Vector2.{0, 0}; - texture_size := Vector2.{1, 1}; + sprite : Sprite; } Item_Store :: struct { @@ -112,18 +109,7 @@ item_store_get_item :: (use this: ^Item_Store, id: str) -> ^Item { return; } - immediate_set_color(item_data.color); - - texture, loaded := texture_lookup(item_data.texture_path); - if !loaded { - immediate_rectangle(r.x, r.y, r.w, r.h); - } else { - tp := item_data.texture_pos; - ts := item_data.texture_size; - // immediate_image(^texture, r.x, r.y, r.w, r.h); - immediate_subimage(^texture, r.x, r.y, r.w, r.h, - tp.x, tp.y, ts.x, ts.y); - } + item_data.sprite->render(r); } } diff --git a/src/main.onyx b/src/main.onyx index fa1abb9..c464bb3 100644 --- a/src/main.onyx +++ b/src/main.onyx @@ -141,6 +141,8 @@ create_window :: () => { } main :: (args) => { + // random.set_seed(os.time()); + debug_set_level(.Debug); if !glfwInit() { debug_log(.Critical, "Failed to initialize GLFW!"); -- 2.25.1