From a7a22856c95a6da44e1a784a12c53dea346a70de Mon Sep 17 00:00:00 2001 From: EKNr1 Date: Sun, 12 Nov 2023 16:58:39 +0100 Subject: [PATCH] Added level loading function, added some textures. --- cowyeet.py | 7 +++++ data/levels/1.py | 43 ++++++++++++++++++++++++++++ data/num_to_name.py | 9 ++++++ empty_matrix.py | 25 ++++++++++++++++ textures/gimp/terrain/dirt_01.xcf | Bin 0 -> 880 bytes textures/gimp/terrain/rock_01.xcf | Bin 0 -> 806 bytes textures/gimp/terrain/stone_01.xcf | Bin 806 -> 886 bytes textures/gimp/texture_not_found.xcf | Bin 0 -> 703 bytes textures/terrain/dirt_01.png | Bin 0 -> 671 bytes textures/terrain/rock_01.png | Bin 0 -> 652 bytes textures/terrain/stone_01.png | Bin 652 -> 702 bytes textures/texture_not_found.png | Bin 0 -> 577 bytes 12 files changed, 84 insertions(+) create mode 100644 data/levels/1.py create mode 100644 data/num_to_name.py create mode 100644 empty_matrix.py create mode 100644 textures/gimp/terrain/dirt_01.xcf create mode 100644 textures/gimp/terrain/rock_01.xcf create mode 100644 textures/gimp/texture_not_found.xcf create mode 100644 textures/terrain/dirt_01.png create mode 100644 textures/terrain/rock_01.png create mode 100644 textures/texture_not_found.png diff --git a/cowyeet.py b/cowyeet.py index a3381b9..c42990d 100644 --- a/cowyeet.py +++ b/cowyeet.py @@ -2,6 +2,7 @@ import os import pygame +import numpy from tools import pg # if you import pg from tools, you dont need to init pygame. from tools.file_dict import FileDict @@ -81,6 +82,8 @@ def start_level(lvl: int): page_switch("ingame") level = lvl + load_level(1) + # buttons buttons.append(pg.TextButton("Start", center, screen, lambda: page_switch("level_selector"), text_color=white_smoke, bg_color=dim_gray, font=bigger_default_font)) @@ -103,6 +106,10 @@ def window_size_reload(new_size): settings["win_size"] = new_size +def load_level(lvl): + level_data = __import__("data.levels.1") + + def main_menu_page(): global active_buttons diff --git a/data/levels/1.py b/data/levels/1.py new file mode 100644 index 0000000..2359b1e --- /dev/null +++ b/data/levels/1.py @@ -0,0 +1,43 @@ +#!/usr/bin/python3 + +import numpy + +level_size = (64, 32) + +data_list = [ + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + [2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3] + [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] + [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] +] + +data_array = numpy.array(data_list) +matrix = numpy.mat(data_array) diff --git a/data/num_to_name.py b/data/num_to_name.py new file mode 100644 index 0000000..bd134ea --- /dev/null +++ b/data/num_to_name.py @@ -0,0 +1,9 @@ +#!/usr/bin/python3 + +data = { + 0: "air", + 1: "stone", + 2: "dirt", + 3: "grass", + 4: "rock" +} diff --git a/empty_matrix.py b/empty_matrix.py new file mode 100644 index 0000000..643f42e --- /dev/null +++ b/empty_matrix.py @@ -0,0 +1,25 @@ +#!/usr/bin/python3 + +import pyperclip + +width = int(input("Width: ")) +height = int(input("Height: ")) + +print("[") + +matrix_str = "[\n" + +for bla in range(height): + line = [] + + for bla in range(width): + line.append(0) + + matrix_str += str(line) + "\n" + + print(line) + +print("]") + +matrix_str += "]" +pyperclip.copy(matrix_str) diff --git a/textures/gimp/terrain/dirt_01.xcf b/textures/gimp/terrain/dirt_01.xcf new file mode 100644 index 0000000000000000000000000000000000000000..e0b7d44a1d0719584cbe68f0aca2bed6ee35dd38 GIT binary patch literal 880 zcmZva%Wj-76o#=iYST7RZ*f)?a&N*}Ol6R=VH2S&S{9Z13KNDQmbj!q+GG(aPf@9l zQT5SgGgB7iKMY8&l!Jc!o%8z`W5`T#DX){2{Gol{LF|np{sp~+7{l!~w0DLQ32_L` zAPyakO!EZv4?4)O^gOAGA}w3w4wU7bjOZn5Z7xHub^&2@ahN-4lWa&Js&5~*~ z`>$%+n>>|Gm7C@9Q?<&HDz9p(hGAZ3=L@Na%Rh#F{($Yv;UfFGxm+Zs%%qRx#!g0_ zUzMhng~@YMq-|O^)KsljP1;KR>4due%XZ1G%aqAQiU!)c73{l}OgJ4ez2g2CQ{qus zeN_&xO{Yom2%^*Np|`}Rcew9957nvn2}Dfs4x0Fl#k8TRE-ij$@xH|e7C#5mUZ;2r zptWfIk0WDnJ`nc^jPEVB{}7a?;I|WDoX%q0Bmez?hZ6rY)jJ((9dpg%H7E|_P=~SB z;Y@Fkz=}hzdx*uICWGrObqq~T*r`CNh$|MYK~WF|Du|Q{W@>{3Rupj6LoDhP8C-3t tV`y@MPPjsNTrh79@?6gqt|x>$6B{J3JeP|eVqPc6;9^T1LzCm4_V;9qkP-j@ literal 0 HcmV?d00001 diff --git a/textures/gimp/terrain/rock_01.xcf b/textures/gimp/terrain/rock_01.xcf new file mode 100644 index 0000000000000000000000000000000000000000..0475fd0ef4ed75b0142ed981e3703e1d408e1e3d GIT binary patch literal 806 zcmZuv%SyvQ6rDz?Z+yFQF}|QKD$T-GNP<*+fQBx*b5+wx9LS?4QQL*!R|tNF_*MRb z6zaKY21f9PbMLvY$=sWSG9K`uAModvX)?%s1>*0(I#8=YZ36Rcgb0u=U=}cdor+W4 zHt++iggCnCr*SNj0zRYUMmrO|LiG8IEFSpf^=*eTYh|g7d!cBCne0=Hs=pd}F^UAw z(@6G@7aKw7r%{^mMroQ^c;Dl#@-dH*zW*m}^75hdFdy`MnS|VgGt!-kH=hz&@K{EX zj71@`oSM=g$VI_hC#Tf)$D2CSE}8fb0u6L^O=^#tqo`UjjktUz6TB+So|1BG+9pXI zpzTh8J>u>g^z`#koO%}k;w1Zk;=3BB3#mBQ_>#t#HNK+pRdBkik~t7Mi_Sl)I1D=^ zK7qglcD1 BftCOO literal 0 HcmV?d00001 diff --git a/textures/gimp/terrain/stone_01.xcf b/textures/gimp/terrain/stone_01.xcf index 0475fd0ef4ed75b0142ed981e3703e1d408e1e3d..ba485ef535cd87ebed41f2f32ff68d06b3644dfb 100644 GIT binary patch delta 206 zcmXAfu?a`4mTe<@=hZVU!tT>O2qP3mNY8!Bz0;|hWFo?h4YdVe0zWev03u}(45Ese6+&oa=rfT4AWty#bil1w2! diff --git a/textures/gimp/texture_not_found.xcf b/textures/gimp/texture_not_found.xcf new file mode 100644 index 0000000000000000000000000000000000000000..35cdd0ab346e7c7b8cfcff72180be1bcedf575f0 GIT binary patch literal 703 zcmZva%SyvQ6o%7Qyta6E0zMT}} z|EC!k!4v+R@7ywzNtBK!VittrrSEwTtXYfv0qsML25yJY<^U-Qb_A_K95|_&eaFxb z)KPe}8>De8lLE2B;=v%3ej!KVRTpD%_we|{%3jr~V_!*EWqQOMyT7}6F^{Ck(@2kc z+ucwFX_RK7TRAsVLtpf(%j=;${HN@R>SB48Py9e9N_Yt7c2KiBO>`k*9Ys2ph0Jme zrD2%MLiDe1IQ1u51*<8Y1Y?N-Zr!rRvlSRLN6c4j-|GZRscf25ugw~59pdSh&>8vm z9d~>IhU}jo|EaO<%jA~}$62(TB^E1NEX>4Tx04R}tkv&MmKpe$iQ$^8A2Rn#3WT;LSL`6Dk6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfb#YR3krMxx6k5c1aNLh~_a1le0HIM~n$s%b1g-6nw|mJpz2ai}5V~bAOHjHE%H>AQI0q!?cMvh-Wr! zgY!Odgq38K_?&p$qze*1a$WKGjdRgufoDd{OnRO;LM#?LSm|I^GBx69;;5?WlrLmG zRyl8R)+#mDx+i~OD6g+9bDic0l32tNB#2N@Lm3s=h|#K(Vj)fY2_OHk>zBx-kgE(v zjs;YqL3aJ%fAG6ot1va`C4~||_lx6vi~>EoK(p>R-^Y&AJOP5wz?I(iR~tb5lk|F9 ziyi^tZQ$a%ttorJeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{004JML_t&-(@l>t3PV8%1t-gIv=J6kc!QL=|Ap)pw$bvZ z2rl1Fm^V*f-_QG26*3C|_esQ}=W?F_WEQGI#KL{DcVQ-sy^Dy2s$eDn#}Kg?tEX>4Tx04R}tkv&MmKp2MKrb+0Yt2!cN#t}afBE>hxmNufoIcO3Wd-uJ%TeFq5jGE>ctaX{59 zBNdN{ne3_p3h_Ddm_ZjLe&o9B@*C%Z!vfC?8|l`&eLBz3$B_tt2MinKLVIfMpMv93PoyR=<1CBpQE}2{< zFmf!Q0u_?u2mgcLy*2Zb6K+y426VpI_Qx;~*aaFj+x|Yb?ZyelN54hX``k!>kkQ~WROUUPe_cQvYED*W{y4T#kHP3PS0Hmo`i5uYH z5Ev;?_PWQryW0EqZ%wm*KaPfSve*hvi2wiq24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j>e56%I38`WlG<000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0001ENklIt1-=E4B!7fyLqkwWLqi~Na&Km7Y-IodD3N`UJxIeq9K~N#MbSzJJBT=B zs7@9{MLKE~iclfc3avVrT>1q~8j=(jN5Qq=;KyRs!Nplu2UkH5`~Y!vaZ+@V691PJ zTEuv8+>dwn9(V5mp;2L))inWVx^1SD2{D^n6?AQI0q!?cMvh-Wr!gY!Odgq38K_?&p$qze*1a$WKGjdRgufoDd{ zOnRO;LM#?LSm|I^GBx69;;5?WlrLmGRyl8R)+#mDx+i~OD6g+9bDic0l32tNB#2N@ zLm3s=h|#K(Vt*k``w1Wau2;D7MDTdOcN=_Q2{K=+H|e2fA; zyFjzwu!&%l-5_E#G~{FC&0TZ`FnJLZJY> zpV2qvfWcd!Z_VqiwU5&WAVXcHZh(VBV5~^l>pt)9?GWtk-!rZLegI?ha-mqI;Wi$mPtfGR2b83jLQnbKoA7WJU2`T%>It(|Nn}YU0E~atsX)Y z!9I0SO`oop^UJHUE;Fe&0HmqN^ODpX1;8{KHq3a{Pluh0t`&;1;@>dDNS1nI8jae? zj|A|lWL_135F=eHJgWyb%+yZyhY%yRlYK1{_uER>?oyhH?0|JFnORbXS0(jE*9x^0 jifvo)s)QIh@@3-<N delta 546 zcmV+-0^R+-1&jrdB!7izLqkwWLqi~Na&Km7Y-IodD3N`UJxIeq7>3`bN<}LU?I7Y1 zp^AeAQ4vS2LJ=yITA@`3lS}`gNkfw2;wZQl9Q;|VI=DFN>fkB}f4OrQsQ?> zp+$^$9QW|v_rBbH2MF~tQ_YTXK-DZG6_1IT?5Y@eMGwsohJP?BF;kyQCKK=+U-$6w z{VvM0yzBlPy-LnxfKMczWx8PzZxBy!S~}-_;xH>p3h_Ddm_ZjLe&o9B@*C%Z!vfC? z8|l`&eLBz3$B_tt2 zMinKLVIfMpMt_Ql6rIOB`~!|ZNiLaOB`|U zf%h}|rYsP;1-jSVzBSKr`T(Smp&3l$DCT>2V`lj{K}cwNSb)f= zQ3nH8uv6QY7XDX}%rcv2oLZtg3HD;$_5wg9s6{gDhcZ8?Wi}7MT}94Ap+yMxBK2k0 kR@6<0vp%o12+n``1ztrWB1XF#!vFvP07*qoM6N<$f@@LuxBvhE diff --git a/textures/texture_not_found.png b/textures/texture_not_found.png new file mode 100644 index 0000000000000000000000000000000000000000..448da00e18d108c0e3cac40904e1b9b5771d73fb GIT binary patch literal 577 zcmV-H0>1r;P)EX>4Tx04R}tkv&MmKpe$iQ$^8A2Rn#3WT;LSL`6Dk6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfb#YR3krMxx6k5c1aNLh~_a1le0HIM~n$s%b1g-6nw|mJpz2ai}5V~bAOHjHE%H>AQI0q!?cMvh-Wr! zgY!Odgq38K_?&p$qze*1a$WKGjdRgufoDd{OnRO;LM#?LSm|I^GBx69;;5?WlrLmG zRyl8R)+#mDx+i~OD6g+9bDic0l32tNB#2N@Lm3s=h|#K(Vj)fY2_OHk>zBx-kgE(v zjs;YqL3aJ%fAG6ot1va`C4~||_lx6vi~>EoK(p>R-^Y&AJOP5wz?I(iR~tb5lk|F9 ziyi^tZQ$a%ttorJeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{000?DL_t&t*9F0`0RR99!yx>B=*baGp+l1gIj9C3blc|x P00000NkvXXu0mjf+KTHJ literal 0 HcmV?d00001