From 9e8d00d6e0cad3cf01fe4160ca814ee8ee2d2973 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 22 Feb 2022 21:46:40 -0600 Subject: [PATCH] random little updates --- run_tree/assets/images/base.png | Bin 0 -> 823 bytes run_tree/assets/images/beer-1.png | Bin 990 -> 5996 bytes run_tree/assets/images/player_sheet.png | Bin 0 -> 1102 bytes src/entity/editor.onyx | 22 ++++++++++++++++++++++ src/entity/items.onyx | 8 +++++++- src/game.onyx | 2 -- src/gfx/immediate.onyx | 12 ++++++++++++ src/gfx/texture.onyx | 2 ++ src/utils/logger.onyx | 18 +++++++++++++----- 9 files changed, 56 insertions(+), 8 deletions(-) create mode 100644 run_tree/assets/images/base.png create mode 100644 run_tree/assets/images/player_sheet.png diff --git a/run_tree/assets/images/base.png b/run_tree/assets/images/base.png new file mode 100644 index 0000000000000000000000000000000000000000..985ae766d698febf82cc81b24cf7d07c0d0491fe GIT binary patch literal 823 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU~I{Bb`J1#c2+1T%1_J8No8Qr zm{>c}*5j~)%+dJET}q?!H49H zuO2*Fv$}b;0!Lkgg_Wh|E|1Rt-dws#HWu%W@2>9OUEUC&Z+w=kmw8s+?3EQhr&7X~ zo(t!A(cWR$l9DD_d@_Y;-{aSEjQj4nR!;lB)84&*)@BKT2_5M(6K@@nK5}{Xwu6=P zBT`%=RqfQ}OkXw~>5mDwse2q#5cy!{qM3eYg}aXgE$p3YmgX9)JWr`_#Vo&{PREj` zeiln#8uyp&Msa6J` zJ*(C(b?s}om;2z+uBDpQ2cGg7d`LO5?2VV>EGIkuJ@YS`r#9}3UQm7Z_1c~Nm)RA3 zV^#ASnw=AtINW?~_x@eh`?vRv&;F}phzc&6yEWNE5g09ON#5=*4D~=(y;JpqGeDZN zz$3Dlfk96hgc&QA+Lr+Z*-JcqUD=;8iHS<;Yr6kA1{9Jkag8W(&d<$F%`0JWE=o-- zNlj5G&n(GMaQE~L2yf&Q2Szu)r;B4q#jUq@Hu5$&@UR@Lc6s>jj>?x0n{1pJ1#~7Y zwx0WL!?oEeQ+Iu1{Az!%{`h108@>!o4h$R&j0y}a4GaPdOawRvCpPkLm|e^8n_&kd zVbw^6HVD39)=8H?V8@V0oJ}yj2`s-EPTyqTz~3Ovzz7p0;7YJEiHFQ3|1^F^*A~5F O00K`}KbLh*2~7YW5E(%L literal 0 HcmV?d00001 diff --git a/run_tree/assets/images/beer-1.png b/run_tree/assets/images/beer-1.png index 72a5ce13b90624f7e5df1d678fe711ad2e660421..4c5ee38811f79e8ee1ac8c264e8e0027a39cb299 100644 GIT binary patch literal 5996 zcmeHLdpwi-AD-pU?aA`QEmdZEvHY zrlSUf!8Gh_nGVperu?3*0zH?F{R6;YDqazeu2Kge3>hRA`S1flq%=GTM1nHD4-6*j zJnQ0Cq-!#7+IP{_nbpe+b#KO(#(G9AvpRI3)cxYQ=_`a)N=m8s8m%&3_WhDOF+U2! z#_1PjA4#pj_W$Z(Z8JR4I=ynq>usv9ha!(3-d+{c-}uh7-hNP7I&Sx;+wOZ8-gBfI zR}Iv(GmST#^BQ#ei5Bjgts|qQ3feVp*P6E)9SPo&?4bQ#T+-_(W~Y|FuPok(hpU#y z7S|h}#5SnJ(I*|Gvbhlp3tnDmu{Jcb2u~~>d+0aV-ZxRyRrF3poj-qP`gB9r z3vKq=S$-K#?7~uf=Ed-i0mF(>-HkoGvY2pc-0R+{$0JuSt0HnH8Nc8+giX$BOSFHP zJR-u6B(DEEb@-T$hUf1QQ+lTxI>3fP#9{W@szYgdL$uo?0N~Nq*|k9Lrsavdlec8m z+FcK5J@@0{|5(fuUza&#+3#MN+(Y(f<1am2d{%O2g0;|lzsH#R*m*rhbK%`<%8}2O zMApO(3qAbm?rd{6i0KQf+F;|ozAJqkf48zCJj$E+Ea4}VN$J_F^lh7GleERplbv9@ zayzx+GX$I~8q-r~Z@OkuSN%?9?QQcDbq1eoi+Wgo!t&9a*G#iu7Zn_wXJf?Bn|+_T z#sO8=fQJtoT|Z?dnVFTx)7hLUY})^6scte7Z4tzKboqJem=OA&K?9@eibpSd@6*Sh5!Z(+8_5|^4j z!f$N2tTh|`!2Nug_d4TNCoe`a$*I6Wg4P&mUYm#}37fK7Co^H#6DGWS!c2g!H-k3!aSL>Q$2^s1DW25I8=EN4es%DaLt8QRj}n>gDv0r|v$)$R0o) zcV698Yr^Me!gXuUfW>cHGBR0_fzt=KloeE?FJ-+5(fm0^AD*}4`9hxAi z5Hpz1*qDYRMDp#Ty(s*GSM&gC{_>m?UHhUh6qTI~F|Rpnkki$s=X%9bbjJn%w{*V& zp8CMPt6;*WW~9x1Qu9oiI(i3ReDJ>BP`4@z^E9#{NsDcy`$YZh`x83eLmZk_sZVpI zQ0Y)giFSf$Rk-u`l5*qTl-+etM>0f|<0X&HXH)ua-KYymifoG;-H}{ROY-hzy)x)} zx8Frl7q$Fa=&Zh#m*PzIF2*!ct*orgHhY|C8lQNP(M>TQ89S(&{)dlUnWf;)g^PKc z3RniQ0Tq|#H9R3Dw^XeNI-JjS7q^ucZh2GIt@@Ode?2$Gype03`)6dJSJU$qJ#0ka zzAHPP{vNeGp;UYLdhY=L%632H(By#TVzF?_|04@r-VLX%*?Q~aFGo%>ECsTDFYK%SYiXkHeE{#W&1 z>522~ZjKvuq>pr{J49PJZuCqV zF2Q+qEU}SoQC6^XDLi9``>i>%^<4*>Vs_+3^}jt&9r9RpszAS}#}heGh^$&Ym=IZ? z?)5zI{gh_rUGLA&Wodq9F4q=jTg`l)!|t;icSgK1IOLp@EL0^F{AQyvPo=ZkM$L1m zA)u0C-03-1a%o@WsTad0-9x*6Gp=nVOnDu-S>e6}@N=D*@7}~#d*aX+hxecs#y+=g z%y>G>%{4%qcq(q754_y6ZCce#T*MoD0J=+m|dm_0}N11kGO4l5fE||xp zY%k5-80qv{lK98^PED8jR}CYT0$Bd34vvc#2%Y}$HZkhSU@XkKn4UA&s;a1>Vt3@V zNvglVU`o6A3`APytd?^oU9Y$ zDZJD6==cPR|Dpu8ev8^!+ClesvsgN*S_qrU3lARr$!V>uadT01vDTb|1xv*a()|nm zN!Qw19TC*MFYJw8*eL9{Gbf`JKhN)qVC7>x{;1m`<#U?2_$cN*6VtkbY1uP7Q_gLF z`!)jc#O<%U)6|HT{2ExMtwr73=9Rt3W4$FB4U^US&c8Z6l01sHLoAQ#zw+qil4s?0 zGw#kkbf(`TINr6s^n6oQzPEq%mTJJM+1Sf=d%n2$QT~Bd`N5msS9v>oxjm)bfmavC zudvlTp0yLT;XFLY$*^W^>T9lG>PCSVDt&DMYB5!t9jDUqD)yhsQQ_I{{$1%>NlHht zDPwrGnV~Tet-;s!Ej<-A<85Y)$<;w@d-S1AO?fPIQKgnMISe0kU^Kf zo3+H$2h&N{jFsnh&*%y86eaICvIb^6v?^FxS9b-5g zE+iI?6~qAj__h&Za7%=}BR3*|OXZ;~*Qi;@Xb^w^lmbYZAW$fw$>=BrE)9B@H)Byq zg@`nOj&fzOkqnU-L=rJX3=X|c#t$W+)~F#Z#5^CG19SaH2w~Xjp7mSQsYE z6eAM*V)0Ze6^kQa2?R7GftG{|rGN}Alo-e%K436G30KSylJZ4Dq#P6Ah(e@v6bkA` ze)3Nc#A1Dh7fL>|0P%s90YO+i28R_0uwQFPr0YTW75Ws#r~`zr@)sl2vTT4WPc+m<@l@$XJ&JI?b_7!YjQfrBr`Q$3kQ9qWV~V&Ta`)_*bd=majVI#rc{Iff_fk4sxG5(@w*oqPe{3u1$WzKRYx;WTTu9UVo$;J&o50|BWI zq(Ddg%om2pzH~V91>hDbAZHU#CX%4bj6fw5@pv-ni;y!YmOzy#$He0>1frrxo)#Ju z3`8s-uTuy>(GJBzV~9aODiS-2M1gda+$E%3Q&HYXiw{Y$`oE1nGU~;`#wXUl1DK9}DVJJO5vjMIiwo1xJPw4C0`C zbGQ^Vz@gyKcrHjVBN1=_(G>g^T_W<4h5=&G+82rxiUukmMKnkw1(n9%N{9J@a-ML| z*v3Id2#$CHjYy#psc0OThQpz-9|Ok9NA;(OEwKN^iG@Pot7!nz`_KkWFVJj-{XAWL zOSS@8b6dT|emhE(X3!_(yg9pzFIB_%7ie)%8E4OYO^n2NXiP zpfKn-Glq26g^ofhoQ*b2#i0l`!6<{yv9LKowr&y_3}Ya_m1H@Vp-`i$)Q+`I_2~@l z1vq@FwQU{L^pkX*tCS%U$oI`K#dZ$lA;b7mKcsv+=MpmyI)o_|+cB*jDRoEFtP`89 z7RP1Utt=iSmhBB~Pn$HHGDjK3#~aR1+=+l!$Ev;VC`pn@=>}HUzDQ?fVc`LxX##o=lyC@wdXSE>QMP z4S%AZ1%au(o-&ytI1%G{0=F7oieS#QoRioz>S9U+DE*3G1wiR~I zROv4Zt2Zq*u-hxrMkV9^i;8cX&s{6*#q2GgaE=bz+j+zamO8y_^6t_O-l@b_R?e{@ zy#vofHL}QOn!^p_(=uGJ8gEX>4Tx04R}tkv&MmP!xqvQ>7vm2aAX} zM5s;{L`5963Pq?8YK2xEOkVm2O&XFE7e~Rh;NZ_<)xpJCR|i)?5c~mgbaGO3krMAq z3N2!MaCsl+y>qzlK0v6KnPzp21DbA|sYG1NWLL$|D+KgY4SypbGs~Ehq$GUT*F6G! zzl-rK|9gL~9yMn%ARrRYGQ+fqH;AVu? zswklh8!_5-QhzL@=sfP@A9Vc^xfF7hz{s(H3N*;BAN&t~&(_LMPIyV-IMDgxI3FWG zXcuVI9OwJkaT+H;@EN$$TmDKNnE52V*3zO!K<_qiaoy6CJ>YT&7Y);!1Q1CXX!C2xR(LtwN(+3P;S8{vx7`#@K zLKQOy0wx)!O7@nMd=)5vwn;=mR5;6}lh0}sQ51*2NoJad3l|~?1sCEbpt$gLbe)BzjS1;E)0x~mbAK)-DUC^s;DO8ebI<+YoO2IcA(CWG zC0VPJsU%68@>-i7jti?SO>qHK_{3W<&W|z1NRsSyGYm;`aspI;t5)M%IXTVFW-=;e zT_r%LDm6Fe0wh3YcB%zO%h;x~ysw<(ErKg@^nM4ws2C(I@}D8UvpG9^Ft!!`yh{{S z96Za&^L(WT-qJ{X@!-ihqmiYK4g0qP?mo@wM=2yWaHx@|x+75`R%jXdB%L zI^4OJ6SvAWz{)6--Gqm)ER*S05-#PMVZ-;s6+Z zU*CllNZf|uhg~M)n*Dao*{IF%(>8v`=iA4C4tD+XTwV$OT|E9*{s75<>8v;C@YMhS N002ovPDHLkV1ieiqq6`2 diff --git a/run_tree/assets/images/player_sheet.png b/run_tree/assets/images/player_sheet.png new file mode 100644 index 0000000000000000000000000000000000000000..906a86cc02479142ec7108b5f69c6f243e6e9a2c GIT binary patch literal 1102 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU~I{Bb`J1#c2+1T%1_J8No8Qr zm{>c}*5j~)%+dJET}q?!H49H zuO2*Fv$}b;0!Lkgg_Wh|E|1Rt-dws#HWu%W@2>9OUEUC&Z+w=kmw8s+?3EQhr&7X~ zo(t!A(cWR$l9DD_d@_Y;-{aSEjQj4nR!;lB)84&*)@BKT2_5M(6K@@nK5}{Xwu6=P zBT`%=RqfQ}OkXw~>5mDwse2q#5cy!{qM3eYg}aXgE$p3YmgX9)JWr`_#Vo&{PREj` zeiln#8uyp&Msa6J` zJ*(C(b?s}om;2z+uBDpQ2cGg7d`LO5?2VV>EGIkuJ@YS`r#9}3UQm7Z_1c~Nm)RA3 zV^#ASnw=AtINW?~_x@eh`?vRv&;F}phzc&6yEWNE5g09ON#5=*4F7?w|8lC6>wq+8 zfk$L91B0G22s2hJwJ!q-vX^-Jy0SlG5)-u$5Z-r00w^R|;u=xnoS&PUnpeW$T$Gwv zlA5AWo>`Ki;O^-g5Z=fq&cMK==IP=XQgQ3;-Gh0D6$D%ZSNyuK8vib5m5x$kV)MZn z#k*I}>WPZI$D^{ako&gS2A%ziEfbt>{av_a=_)17XY%v^?RVQ)^;bUIfk{L-+2+fW z+3$*~RT@}sJj}08tygz?_j~^H%Ad{N3_epB)}LPyWx}13&Y~U9^nh_UL-1af16`aG ztWW;7Q@msSv6-s1DC4Dh-`DFizF~UBD^uyWpf0wSGl7kP zF@a6vm3h4F((kJqUu_4khfQ#@pCFLu6ysDzBcb7zx$U5Gwb4k0$(0aeJ%&2Z+%~-?ei}7 z^UJR)3|c}7jrab1sS;v%F062UyI#Hf8Ryr%d(s`5JQ!+=O7>1n=LdNs@x}l3_Md)M zd_BtmbUg!81JRTK1IvM3JLD4z@9;mUW0=9{zyK6sAb~Pq%@draw(); immediate_flush(); @@ -388,4 +407,7 @@ editor_draw :: () { clicked_tab := Tabs.None; active_index := -1; + + editor_grid_shown := false; + editor_grid_size := 16.0f; @TODO // This should be configurable } diff --git a/src/entity/items.onyx b/src/entity/items.onyx index 26870f8..c2a648f 100644 --- a/src/entity/items.onyx +++ b/src/entity/items.onyx @@ -106,10 +106,16 @@ Item_Entity :: struct { get_rect :: Entity.get_rect draw :: (use this: ^Item_Entity) { + r := this->get_rect(); item_data := item_store->get_item(item); + if item_data == null { + immediate_set_color(.{1,0,0}); + immediate_rectangle(r.x, r.y, r.w, r.h); + return; + } + immediate_set_color(item_data.color); - r := this->get_rect(); texture, loaded := texture_lookup(item_data.texture_path); if !loaded { immediate_rectangle(r.x, r.y, r.w, r.h); diff --git a/src/game.onyx b/src/game.onyx index 97613eb..b48cb02 100644 --- a/src/game.onyx +++ b/src/game.onyx @@ -10,8 +10,6 @@ scene: Entity_Manager; item_store: Item_Store; game_init :: () { - // player_texture = texture_lookup(#cstr "./assets/images/player.png"); - // This process of queueing the asset bucket should // be made automatic somehow... queue_assets(^player_assets); diff --git a/src/gfx/immediate.onyx b/src/gfx/immediate.onyx index 231b97d..2d9d67a 100644 --- a/src/gfx/immediate.onyx +++ b/src/gfx/immediate.onyx @@ -30,6 +30,7 @@ immediate_flush :: () { vertex_count = 0; rendering_type = .Plain; + immediate_mesh.primitive = GL_TRIANGLES; } immediate_clear :: (color: Color) { @@ -48,6 +49,16 @@ immediate_vertex :: (x, y: f32, t_x := 0.0f, t_y := 0.0f) { vertex_data[vertex_count] = .{ .{x, y}, .{t_x, t_y}, immediate_color }; } +immediate_line :: (x1, y1, x2, y2: f32) { + if vertex_count >= Maximum_Vertex_Count do immediate_flush(); + set_rendering_type(.Line); + immediate_mesh.primitive = GL_LINES; + + vertex_data[vertex_count + 0] = .{ .{x1, y1}, .{0, 0}, immediate_color }; + vertex_data[vertex_count + 1] = .{ .{x2, y2}, .{0, 0}, immediate_color }; + vertex_count += 2; +} + immediate_triangle :: (x1, x2, x3: Vector2) { if vertex_count + 3 > Maximum_Vertex_Count do immediate_flush(); set_rendering_type(.Plain); @@ -159,6 +170,7 @@ Immediate_Vertex :: struct { Rendering_Type :: enum { Plain; + Line; Image; } rendering_type := Rendering_Type.Plain; diff --git a/src/gfx/texture.onyx b/src/gfx/texture.onyx index 8586b40..2ceb980 100644 --- a/src/gfx/texture.onyx +++ b/src/gfx/texture.onyx @@ -33,6 +33,7 @@ texture_lookup :: #match {} tex.filename = filename; pixels := stbi_load(path, ^tex.width, ^tex.height, ^tex.channels, 4); if pixels == null { + debug_log(.Warning, "Failed to load texture: {}", filename); return Zero(Texture), false; } defer stbi_image_free(pixels); @@ -52,6 +53,7 @@ texture_lookup :: #match {} // This assumes that the filename data is going to be persistant forever. // Not a great assumption to make but is it really worth copying it? texture_cache[filename] = tex; + debug_log(.Info, "Loaded texture: {}", filename); return tex, true; } diff --git a/src/utils/logger.onyx b/src/utils/logger.onyx index 529ddee..4947e53 100644 --- a/src/utils/logger.onyx +++ b/src/utils/logger.onyx @@ -12,24 +12,32 @@ Log_Level :: enum { Critical; } +debug_set_level :: (level: Log_Level) { + log_level = level; +} + debug_log :: (level: Log_Level, format: str, args: ..any) { debug_log_va(level, format, ~~args); } debug_log_va :: (level: Log_Level, format: str, args: [] any) { + if level < log_level do return; + buf: [2048] u8; output := conv.format_va(buf, format, args); - printf("[{}] {}\n", level_string(level), output); + printf("[{w5}] {}\n", level_string(level), output); } #local level_string :: (level: Log_Level) => { switch level { case .Debug do return "DEBUG"; - case .Info do return "INFO "; - case .Warning do return "WARN "; + case .Info do return "INFO"; + case .Warning do return "WARN"; case .Error do return "ERROR"; - case .Critical do return "CRIT "; + case .Critical do return "CRIT"; } - return " "; + return ""; } + +#local log_level := Log_Level.Debug; \ No newline at end of file -- 2.25.1