From 807e00624530d41921b7c27a0da206a7e5f9d45d Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Mon, 30 Jan 2023 11:12:15 +0800 Subject: [PATCH] [feat] add full element icons - add more element icons. now element icons is not problem. - change icon load strategy. now icon is loaded outside plugin. this operations might slow down blender but now I can apply my custom map to some operators to get better using experience. - use new element icons to decorate some group name to let user know what this group stands for. --- .../OBJS_add_components.py | 9 +++++++-- ballance_blender_plugin/OBJS_add_floors.py | 16 ++++++++-------- .../UTILS_icons_manager.py | 16 ++++++++++++++++ .../UTILS_virtools_prop.py | 9 +++++++-- ballance_blender_plugin/__init__.py | 4 ++-- .../icons/element/PC_TwoFlames.png | Bin 0 -> 663 bytes .../icons/element/PE_Balloon.png | Bin 0 -> 745 bytes .../icons/element/PR_Resetpoint.png | Bin 0 -> 945 bytes .../icons/element/PS_FourFlames.png | Bin 0 -> 818 bytes .../icons/element/P_Ball_Paper.png | Bin 0 -> 2325 bytes .../icons/element/P_Ball_Stone.png | Bin 0 -> 2664 bytes .../icons/element/P_Ball_Wood.png | Bin 0 -> 2633 bytes .../icons/element/P_Dome.png | Bin 0 -> 611 bytes .../icons/element/P_Extra_Point.png | Bin 1358 -> 1372 bytes .../icons/element/P_Modul_19.png | Bin 0 -> 992 bytes .../icons/element/P_Modul_26.png | Bin 912 -> 691 bytes .../icons/element/P_Modul_29.png | Bin 904 -> 775 bytes .../icons/element/P_Modul_41.png | Bin 0 -> 550 bytes .../icons/element/P_Trafo_Paper.png | Bin 0 -> 1833 bytes .../icons/element/P_Trafo_Stone.png | Bin 0 -> 1942 bytes .../icons/element/P_Trafo_Wood.png | Bin 0 -> 1924 bytes 21 files changed, 40 insertions(+), 14 deletions(-) create mode 100644 ballance_blender_plugin/icons/element/PC_TwoFlames.png create mode 100644 ballance_blender_plugin/icons/element/PE_Balloon.png create mode 100644 ballance_blender_plugin/icons/element/PR_Resetpoint.png create mode 100644 ballance_blender_plugin/icons/element/PS_FourFlames.png create mode 100644 ballance_blender_plugin/icons/element/P_Ball_Paper.png create mode 100644 ballance_blender_plugin/icons/element/P_Ball_Stone.png create mode 100644 ballance_blender_plugin/icons/element/P_Ball_Wood.png create mode 100644 ballance_blender_plugin/icons/element/P_Dome.png create mode 100644 ballance_blender_plugin/icons/element/P_Modul_19.png create mode 100644 ballance_blender_plugin/icons/element/P_Modul_41.png create mode 100644 ballance_blender_plugin/icons/element/P_Trafo_Paper.png create mode 100644 ballance_blender_plugin/icons/element/P_Trafo_Stone.png create mode 100644 ballance_blender_plugin/icons/element/P_Trafo_Wood.png diff --git a/ballance_blender_plugin/OBJS_add_components.py b/ballance_blender_plugin/OBJS_add_components.py index 42363bd..906eb40 100644 --- a/ballance_blender_plugin/OBJS_add_components.py +++ b/ballance_blender_plugin/OBJS_add_components.py @@ -1,5 +1,5 @@ import bpy, mathutils -from . import UTILS_constants, UTILS_functions +from . import UTILS_constants, UTILS_functions, UTILS_icons_manager # ================================================= actual add @@ -12,7 +12,12 @@ class BALLANCE_OT_add_components(bpy.types.Operator): elements_type: bpy.props.EnumProperty( name="Type", description="This element type", - items=tuple(map(lambda x: (x, x, ""), UTILS_constants.bmfile_componentList)), + #items=tuple(map(lambda x: (x, x, ""), UTILS_constants.bmfile_componentList)), + items=tuple( + # token, display name, descriptions, icon, index + (blk, blk, "", UTILS_icons_manager.get_element_icon(blk), idx) + for idx, blk in enumerate(UTILS_constants.bmfile_componentList) + ), ) attentionElements = ("PC_TwoFlames", "PR_Resetpoint") diff --git a/ballance_blender_plugin/OBJS_add_floors.py b/ballance_blender_plugin/OBJS_add_floors.py index fe0bc03..fe18870 100644 --- a/ballance_blender_plugin/OBJS_add_floors.py +++ b/ballance_blender_plugin/OBJS_add_floors.py @@ -15,16 +15,16 @@ class BALLANCE_OT_add_floors(bpy.types.Operator): floor_type: bpy.props.EnumProperty( name="Type", description="Floor type", - items=tuple( - # token, display name, descriptions - (blk, blk, "") - for blk in UTILS_constants.floor_blockDict.keys() - ), #items=tuple( - # # token, display name, descriptions, icon, index - # (blk, blk, "", UTILS_icons_manager.get_floor_icon(blk), idx) - # for idx, blk in enumerate(UTILS_constants.floor_blockDict.keys()) + # # token, display name, descriptions + # (blk, blk, "") + # for blk in UTILS_constants.floor_blockDict.keys() #), + items=tuple( + # token, display name, descriptions, icon, index + (blk, blk, "", UTILS_icons_manager.get_floor_icon(blk), idx) + for idx, blk in enumerate(UTILS_constants.floor_blockDict.keys()) + ), ) diff --git a/ballance_blender_plugin/UTILS_icons_manager.py b/ballance_blender_plugin/UTILS_icons_manager.py index 7531762..3d5c500 100644 --- a/ballance_blender_plugin/UTILS_icons_manager.py +++ b/ballance_blender_plugin/UTILS_icons_manager.py @@ -15,6 +15,13 @@ floor_icons_map: dict = {} element_icons = None element_icons_map: dict = {} +group_map_to_element: dict = { + "PS_Levelstart": "PS_FourFlames", + "PE_Levelende": "PE_Balloon", + "PC_Checkpoints": "PC_TwoFlames", + "PR_Resetpoints": "PR_Resetpoint" +} + def register_icons(): global floor_icons, floor_icons_map global element_icons, element_icons_map @@ -51,3 +58,12 @@ def get_element_icon(element_name: str): global element_icons_map # default return 0 return element_icons_map.get(element_name, 0) + +def get_group_icon(group_name: str): + # try parse string + # if not found, return self + return get_element_icon(group_map_to_element.get(group_name, group_name)) + +# no matter how, register icon always +# and no unregister call +register_icons() diff --git a/ballance_blender_plugin/UTILS_virtools_prop.py b/ballance_blender_plugin/UTILS_virtools_prop.py index c881c88..5493edd 100644 --- a/ballance_blender_plugin/UTILS_virtools_prop.py +++ b/ballance_blender_plugin/UTILS_virtools_prop.py @@ -1,5 +1,5 @@ import bpy -from . import UTILS_constants, UTILS_functions +from . import UTILS_constants, UTILS_functions, UTILS_icons_manager class BALLANCE_PG_virtools_material(bpy.types.PropertyGroup): enable_virtools_material: bpy.props.BoolProperty( @@ -92,7 +92,12 @@ class common_group_name_props(bpy.types.Operator): group_name: bpy.props.EnumProperty( name="Group Name", description="Pick vanilla Ballance group name.", - items=tuple((x, x, "") for x in UTILS_constants.propsVtGroups_availableGroups), + #items=tuple((x, x, "") for x in UTILS_constants.propsVtGroups_availableGroups), + items=tuple( + # token, display name, descriptions, icon, index + (grp, grp, "", UTILS_icons_manager.get_group_icon(grp), idx) + for idx, grp in enumerate(UTILS_constants.propsVtGroups_availableGroups) + ), ) custom_group_name: bpy.props.StringProperty( diff --git a/ballance_blender_plugin/__init__.py b/ballance_blender_plugin/__init__.py index fba29e4..12e1935 100644 --- a/ballance_blender_plugin/__init__.py +++ b/ballance_blender_plugin/__init__.py @@ -223,7 +223,7 @@ def menu_func_ballance_grouping(self, context): def register(): # we need init all icon first - UTILS_icons_manager.register_icons() + #UTILS_icons_manager.register_icons() for cls in classes: bpy.utils.register_class(cls) @@ -264,7 +264,7 @@ def unregister(): bpy.utils.unregister_class(cls) # we need uninstall all icon after all classes unregister - UTILS_icons_manager.unregister_icons() + #UTILS_icons_manager.unregister_icons() if __name__=="__main__": register() \ No newline at end of file diff --git a/ballance_blender_plugin/icons/element/PC_TwoFlames.png b/ballance_blender_plugin/icons/element/PC_TwoFlames.png new file mode 100644 index 0000000000000000000000000000000000000000..a323bd17bb14f2decf0a655b610dd9985cbaf893 GIT binary patch literal 663 zcmV;I0%-k-P)6YhryI4lfvPPqk+-x?5UCs%o z(P(h>dY#90{9wV|3IN%DfMg8DM-GSMaW0o*VysXo@X+@H!?%ue7xqRCppYiWlq*&u>UZC=uTiHWV2ZjVpmo55zf-Or(mzw zW4!Dk+`!Sr~x5+wOlTLh2y=>nG4D=3trPKKvz^~2DIC4m1Y9X208~@FaBm0Fb82& x)TiM)?3a-DkZ1pG8vb*XmZ8Of#lS;g;5QF}W+-WlX#DA%(4Q&H1GFH%z-+{#MXaW~;@02#2Z~H$(sP0tqUq$`xSE9r4&Ef+`R;d4 z&OMQkquu8UD2hVBpMrk?kKi@U4vD#w6Ua^_u-R-TZ8jSTt`iIbEXCLP9+fxD?$@+NQ@~b5IzIH1b?mpVa1+PjB7oK zK8B@lXi1Smp@7Y(dZW?!cmuXxuf_3rERIGa5!Yz7TJ61tqmpg`JSz}!{eJ&`Fvgiai5aOBum2* zW&zlY<#L(Z&wM`ts1V8JayJf#wM_%@N$`bO?w=-ZPf!8U*Mk zpN`vp>pp66deBmF=k=m8O$&~W@rn$QWcvKgo0 z6+nPsx7$xW9?unQ{zBUvfz4*~OD2<%XpNQ4W;d-?>nm=)#qMyzJvAZCn9GU*ylNW6yfUc;nQzYS=(#(N;_9SesZW2pidxc_z2Umx=2vn;@B zhBW+9z_9|f9x*)M{^e@J5K_9`uIji3`*p}Eu=JNqr{*&GAz bLk0c;(T~{cmtr1500000NkvXXu0mjf0a{u# literal 0 HcmV?d00001 diff --git a/ballance_blender_plugin/icons/element/PR_Resetpoint.png b/ballance_blender_plugin/icons/element/PR_Resetpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..ad0ef4f1974146a422188c341aac6cd700720b12 GIT binary patch literal 945 zcmV;i15W&jP)#wBXmmwcAiBk(HGd*=n`!6?!~83nR}k+W|Vp>%^IPp8%Y^xjyQTPkAS0V92Q zJO;1;IT#V9Xcpboh+0&fTPV=U{Vgpm zO>Vb4BO=4J_|-m8QbsO=AfR-1vU6@eyk4)=*49=)8@^7-(g$e+ts7YX;P?BN(6m_j zW57Om|D1hbt^47n4~)_{xWBQnQ5On@^tj{e&g9pyx3{-|+$*vyvvBWjVVo&>2suLA z00|2^+!VfyIiw|r!sI`I`fq?@<@3~^{2$QzN5oJ(1^)gYk+wKhrK%D5k0S6LpwoNK Tli3sO00000NkvXXu0mjfo$I<1 literal 0 HcmV?d00001 diff --git a/ballance_blender_plugin/icons/element/PS_FourFlames.png b/ballance_blender_plugin/icons/element/PS_FourFlames.png new file mode 100644 index 0000000000000000000000000000000000000000..fa39256e1b1f8a1c2f4e06b621afc6899e3c9574 GIT binary patch literal 818 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 literal 0 HcmV?d00001 diff --git a/ballance_blender_plugin/icons/element/P_Ball_Stone.png b/ballance_blender_plugin/icons/element/P_Ball_Stone.png new file mode 100644 index 0000000000000000000000000000000000000000..b81e83ef22f75da94b05fd912f98c50f3da5dc65 GIT binary patch literal 2664 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 Whq~0Wv67ss5^CRq;~w3yT8C= zKL0I;|M}e9>661poaqTS^qf{J3gTAa#$mJ6ikwob6?$>pisH~~w%qE3Tbmd@Jn`m0 z-{+~IeAbuVJTSQboaGl^>@_N=jg6u{HjK&RZ(-rWZp1OrR>+}NoyN)c#-MkcjfLm0 zMsD_E7*-pmPQG!V`>Yige_9Rwe|og3R^h;o$Kkpj8g&QNS_6#+|F6{fzKI6kD{%x>11Jnyq*{=8^6XgZK!5*(%_KyLSr%uEdtX_ZOi~x?jy6ZqH z*Jb|cCtH+=?WWn0$zRfdY}$rm7>L-dLO`ZvKqti_gX;w-SHvGKG8qjqrSf@yx#o~H z8k7JEogL^~(1XE;?@+S24s&R5VDAiwgn^w8-`Bfv+3Juw#0IfMY)0pcEj3E&9hM=)XVxd#t>q zf9?JE-;+p@061&ug}dF_G!E~2l5_)J1k$IXquqkRt{qa+2m|;ms+sfwe^ruW+ZL>p zO@{bgcAqwAKC)(O1{=_zQ6itfrz#apmx^dq>v(bJQz)0F;uT-MXh>=&IndrcuXlXp zAf|m%$Knz&6~0y*5xY>)-kw2@qt=nJm;)JDl%TE6f|4abf@n(-T)j+Zcw zgGwnpmlAPoW2ZsiD45lmW@rs7^Lo!Y>ofzIe8CufZ7)0;%~ch48lz4j%LI^0nTZ_v z6pI%!9t7_V5<=ulj;kBZ~@u0RLsq;M_O~=Q?WDSk7OQZSB0hbK%LF}|eRzm5P4~=+V zK1W74DYPm=p9T59N+T$$iF{`sHqGquc?b6GqBjg>+qP|{e$|@u?g~6o#4ksDkVn16 zND@36*@y$5g_v^0E3n;cu zvRW7?L-ksdng>v6N>fb8DKKSJnE^qwNytPSYDiILRZLwe#@%!0e@o|>S&FKY0ZtJ$ zlTLj;R2XSV81cPsshn?K=iGy)lC)F#AVsyPxrt`2ie|Nz> z$?YTES+>T}jEOH`2Ixo=1Q8|^)7w)(XL}Yo%45*bHYLvH3re#z@fUUNrY*PYrp3tB z5r}C>cOY{}{WWHR(40$Ke6Pcy43hUDK}iaF43{t;k}kg8K_@-E(0S& zPsry?#wOFU-tc&T49&2xeB(E7PlCwz+<5Ut{bhDb)}YBHk}eBBQf0W<;snM9<=- zaq0chBc~a7`}IRtb#!*&nrpw4P%3yayTDPuK$46K0VdPI-o zov_<;hz%PXzkMr4Ufr|r((7(Mej0$hSi5f1n(}nfzxR*N#t~T%r^~LFC~h=;RH{r% z7LIsbWKvjIx|g-=Z~~5wp1>F-Aie~+B%#GaOUlyG-JRk04XnH2SFuwq`RA_Lv^JUd z857RDd3pCh@4N+l%9UGgg2Rar5OvZR@PR(TIDB0v7%`wpFQoGAG@q<&aKLZ`^pxsiB?)L*M_=PuIy2?7-eX zGjO6L`C6p4&f`}s+mbX#Og4kr5!o38+zVdl(>E~;W`@qrV~&mFh(@n;EnbhF^RL2* zkyl?>bNP*@J`CU!$MSU>zIN$LL(lKL>E_$;i(ft*`vf36-Qh{4K>(rXOhBH;)3Mj& zV&bZmb<52ujLF2vDX6nEOQ{qr*?e0(fBDrIAAN0i-+61-f4KN3B$)Yd!{t|h_3AI_~HEsYVV-`f<7)AE~9)mUO#vU zlOGh3p0f-WuDg=s*e6;jLHYO#Rww!Yl%LN8Aoo7{=x^qod-nM|dgd=&)Rrq4JaBT& zFe}2Q{9VSS#d8if9^;vRv^E2?)i~ler>{u$T=00000NkvXXu0mjfmz4-6 literal 0 HcmV?d00001 diff --git a/ballance_blender_plugin/icons/element/P_Dome.png b/ballance_blender_plugin/icons/element/P_Dome.png new file mode 100644 index 0000000000000000000000000000000000000000..0920e3acec99bab8a2902e9bba50c6dd9a32a169 GIT binary patch literal 611 zcmV-p0-XJcP)2$Qf zn$PEp!CFo+zIaPywz%%qS2`C;xw!1v-|v4eisDz){E<%oel$A@V2b0lT1}|e>#Vt%{VJ6T zX*QeEWHR}*9i$PU-4_alGf9$^L?ZEEo$s@QvI6Ep!9c&?%z?0etET00d6i5i<#M^q z+?5_jr_)J-!QcW!%!r?8-S+$a@Az{)9goKlLDG|#Iff3Vq9`f?T2`y|*&n%~#1j}l x0FRin>2sVT>myR(7@2Y9q}^BEu-j%A$)E7X2`? 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 diff --git a/ballance_blender_plugin/icons/element/P_Modul_19.png b/ballance_blender_plugin/icons/element/P_Modul_19.png new file mode 100644 index 0000000000000000000000000000000000000000..c0b7e2c4b9b59ae714bbd546e4a4ba71a8e7bee2 GIT binary patch literal 992 zcmV<610Vc}P)d3FjfoNjoHjbV$6kPKk#I z8cq_#qj*pd)D9j}ql@HeP$vmP6g*f_9lV4hi!8{4wX!B{f^Kuu{rSFr&)6rM^P5|4 zUFwCGcYEJ=&+~i!{hoJ>{p*7(h69F%h7QFH4-boxm9pBjwYBxSy1M#;*X!k`r>A8)osLyi zRpnGs6ab_l91eemx68)H#^kU*sTAKu<(H*U9NsvsC**RudSPMVP&vs%+*uqWm+Ybe zfHLl=F7g24&;Jzwq$C!LW#}Rg`2Bt*ZAv9#Nj*RS3oBpK?W@BkECgZmZr_4N!S zl(c+zcbE0|_s3D59$>SUBnctZg82dNeT9s1q}FQe0==8*=$y$=?G4zGl6{~pS&7SK>$+qJcHF9jYfY#v0159s=@a{ zXJ=;^`&9E0D!Y8UU)}&<{bLBen@A*r6B849tV*NNC@2&PuA`&FkF!rH`YovKo(KSn zdm(s`GJ0ugNx8bZdIp2<>guB31~A_f(dBFL(Q?eHg0wi_#^s0juA7>g(jvYJ;`YkQ zN@lm)MRtq+sbUexabwYBk9tCe%R-A`;bo0HB6$f*G= zFE2lbz+0$kZfx*Ocfe&hMk!ZP~k&_2d^RC9mM#tLPnrwD+=C~ky+tq= z4%d6{@psOgdv#`rB${Cuw}Ari3b-S_iar25)OG!hwYDWul7CM{@$>Wfe6Q2#7@DRn zrqk(H%)N#1yTM?f_4|EeI2^VyzKeN`|KX~_mi`=>{E)l$u+wESaQYix|DAj6};_*0DDiwk;N~hE0@pw*wC$9b+(BjmV zF`zmej`?!ATz@AL30J99qDG@Z(P)%{!5}4*N%Hx8x}qo(2&)`%!C`HIwWmplZy|D5 zKA)#>IBaUfVljd!)$4V_IdFk{7Sq2L8I6?y1W?!b0vxQ@>#Lbe#=PogvuQ@(>-BVq zi;L+1d%$~!wnz5~yIZ4b_+Njq&T(#_DiI-xBH{fXs6rl{uXm25+SeG`w8)|M~v?pXdK>L{%c2AY9Kg+d{4czAfUwzeku{eB6F ze8>77Kv6A_S|*FEQmITD42F!y<7t?io1>ML70tlFfU~2cqrIuA>4sXZmeT38W_Nd2 z6$k`qX=#Z@M}J4DR4Uov+Y9)BLZNsH+gG?tH79VA1T%FTRoz9kJ+WAZEYp=1MThY zQDg&zz!hlhu?X0til($Z4OX0!TeG)hRWyd8GCJ%Ps4KvxNN zg3KD8a~DnkPC`8MHk+*ndv1X94LG%<<9m@r**^{_LQ>zr&N6h{Veek~ixU~W)5fA>NN}8& z3ob%=rH*g{wKx~CsV7ip;Bqj)a}QhxX3^Pu869#=anYB~pC^bkKv z21B9HU?!7kUSD4?`{5)uH#hlv(9AM?GkURnQ)C3o_9BWW)y#5$$;rve%Kx}vz47sJ z>R#&V`i#Y)3Wm-MC3F;5T8h#uQrzWeLXk>p)u}U3XW+jx@K*;>GMOCQ-`}s=@c8jc vdcA%bO0Iu>5Iy7n1PqzW3_1Tb6S{r_o_LQD2C(q100000NkvXXu0mjfF2kI! diff --git a/ballance_blender_plugin/icons/element/P_Modul_29.png b/ballance_blender_plugin/icons/element/P_Modul_29.png index 0a5fae6f0db1176c9dab7bed85d652d6bc4a5fdf..012c7fb970cb0bafba0eae94f6cd019683728c8b 100644 GIT binary patch delta 731 zcmV<10wn#22ZsibIDZ1UNklFqfy#x$`1^~wD(iYFnKr}CN7tYupW=60|!Vl znVin$au?d|_J1;n&mlp&UjjyvJDpA{pw8Lt_OBS`R4T=6Z*L!i6BkV;Q%5S5HX-2M z--`Gdxx?Y8Yqi?l7GV@sguIW z`#7dQ>3KB9mUo$x=koQenDmbGXgv+|*y6M-obtlvKLd z;BcOu=e&H+_dMq(MDmwpAjv?Ifg}S-29gZ?FAS)vs_Z8g>VM_PdO8kv^kw7|@^P<0 zP*0XPg>FRrVr6CJeIk+gf_{UcY##twVEv;8@=>S>hulK#0#p z9+K|^^AF6-%)}Xiy12MFf&KbgZZ2=gqReL&qnmNefi%uIrupB2)a(?51diO4>rGRn zoR4w#V3R=JqFa$HNsVN|hN?&8j@Gf7r#m`21Y04Bii%>ar#B@fMQ%n58{+vJ81h}j z=N1p`1bh*fHs;VkrFc{jn>y;lpa!u=GG7dh1S~%u2pR1{DygnE zB+O>>l*wcoBIrKF``3dv0r)u*GrF0X)sxKO^Z6`jQC?pDl~Kg$tfZ|?GWq+jsi{fi z=jVS1oOyV7*dSLeCnv|Bo}MnhuB{Y)x-sUD0M?yg;|S;5P>`M!#mjo zAXYawSHRE&k9h?@69vB!_ZY`V>y+;Zz%M{9aIQw4A(EYYTfBiR>@NWRj)KQIKS7Uf n;kz?4Nfl&ULHMO?%Mqs^y`$fyg}U@500000NkvXXu0mjfrgo<5 diff --git a/ballance_blender_plugin/icons/element/P_Modul_41.png b/ballance_blender_plugin/icons/element/P_Modul_41.png new file mode 100644 index 0000000000000000000000000000000000000000..804fef2f1cca840c2f881d0e1ac3f137c3e52c35 GIT binary patch literal 550 zcmV+>0@?kEP)p& zhM(Z#$`6pAz>IWhaDa{IL`oZh01Y3p-rKZ%BtoG?7vD=R&D;0xd9Kf04}cm~fGR*0 z`0olZ+XS#I>lW`H4iG7dxfOeASRlCV}I)H!R?M69DUlOvuaS zvRBxT_k}_M(&@CmE%^v#2J}nxXY>o_?2B-hq*X2w&*B$;2!e1t9*-du3f&ooF^b3I z3Mm9Fy9=mCOct@KBu3ZutJ!SExm=x2M`Pym`B$k_TFinh%OFV-Os7*Dw_dM9v)S}j zM<$a2f=4VE41%hvHlAz6ViDMGx4Q=3Znr^E6w(&^Jr0mBa+23-wQMI?8b*OK)_Z2Tf89Sc^(+-!@DSoCxgKN!r?IV`+XCO zdUc|*sEBajU+{@oD#1gwWmJK8xq7{x!6p)kQ@p#zLA=N36Oz|l>7C)p`Rc(kNk#c@ z+#_NxxMHzbjdglVNNwWZHso95^4f$A(=^YpO}^@KHemxvrA+`{oA3o!sfF8YIXU~4 oB4T)DzZ4ox6`%@G1^!rpZvocO{`oe0d;kCd07*qoM6N<$f^l*3asU7T literal 0 HcmV?d00001 diff --git a/ballance_blender_plugin/icons/element/P_Trafo_Paper.png b/ballance_blender_plugin/icons/element/P_Trafo_Paper.png new file mode 100644 index 0000000000000000000000000000000000000000..55f263ae5baef461ddc13031b410bf5cecb9ff98 GIT binary patch literal 1833 zcmV+^2iEwBP)$4vM4NoB}HnoD@ah4kOE17gaqe-W5>_&yWe-rM0N}YRY;v^Xl? z-}&wtk^lL!S@s)^hV}RZ9_+Zk+}hfbrKKe~eE6`GE6vC-M_=3Rb}Y6@p;*xIu`kDD zb#+ypNTpKJ-`_8G#8bt)P&g#<@%TPkSex^Dy=sSK+rKavLbN9GFZ1*Bl1`^37K=(E zkr1cDsT+F`X(SxcHMM$8s+Fn?e=#gT3XwM?8jb22I$~nX<#uUWR$iBCl3oX}*bqk_{v)7K*aA zwkCyqUhe;SUmo0lAlH7mCO3Y&p-yvt1-xl;#wNi)Q2ai>61eqht%7}Waf3>=A{!eU zGB-Cb7cX9rBO@akJtKrZXkJ~IM_5Clpd3AVRQ!IwOiWGyk-SEl&*!A4rw8`knle@l zInvbudRVL0WM_Lv28Raa$dMx;&5YcL(5^8!`!Yx+^0u-E5wIu87ucf!ASK{#r*@O^9qrHGUtp>-&#*}bY zWE|^@#UMN;O3kB0qruIsO*MM^)-6RU9*=AKx|Si~=c3_Z5Dcs%Y(5w(pzLxGot>R+ ziS&epCCdCK-zFtr$RlqyKwg0|Lh~W;M1?x81D5(n!^nL*#`6X!@aw=g-f|xtVj)+l!JsaCIml zp(CWsZw)8l+Uqs-Je$pFUJ0QAVsakEh}z83Gr$i6@bd`vdVQ*fX*iw9W>k)eh7I!$ zUL72;m>Ud+w0^mn+wH;W)(1%qXmmW`9{u%5ON@unC`4%L#0ia2Ym9$p`<0(#Gzi%*?8CD*TCmzy_ks`8yaeOe8$ zz@S#d!os2ip^8J0XC7EYCYgLIIlN=knam!LaEUSE)z*weCKJhxt{edQyo8>qNJ8r= zBqzT*DaVf=*HkPmFUk1$F>NwfcB~ARSqc0|yh*57ku#AIPE;2fVEg zv|++F9JgT|NOOP8Nesklb}_&|!c_D`B8n8pO5h3| zU_di7GyCTNbf$nqN{`Ie50k5a@z<8`0)>l&v)U*^%l~PBX8~I_a)8Q6BXq#hdOkzQ zo5aH(E34(ZpbDga#+>fo1?*sP7wG_r$)lAdB@N<2deQ59ZeVqOX`(@ley{~RN>gW>&S~}s+zV|1X?>^;U XEsEq=tBgBz00000NkvXXu0mjfjB;CX literal 0 HcmV?d00001 diff --git a/ballance_blender_plugin/icons/element/P_Trafo_Stone.png b/ballance_blender_plugin/icons/element/P_Trafo_Stone.png new file mode 100644 index 0000000000000000000000000000000000000000..b3373fa4fc1b487de9defd1484e223aa2cda08c1 GIT binary patch literal 1942 zcmV;H2Wj|;P)A z2@oI_EZDGS%kwn*M%7YJxvG4(^L{a398XQVs(K0rwM1H0+9xwlMEvo`ACV&e=c99P zf4|?~|NI?4EWW?dg-+-DTmENPpWFL^165UJWm(#4*KwTE_xj&+3>t^Qr1aEUP27WlLGrT-)juIq^BdLK)rB8~e;N0w!qwrzX5ImYF$fBTc%Os6s&gwl(9VmqO%)*A@}TUv3X z%y-i34Wuk9X+WWlDF7QxBzJfph z<=0Zzdnt-se9sl%_xOggW7EL*#q+xuE`S(E6m~u~Y0#((9MY6DO(PgmtU#qBU;q3Y z_VDvK>V@}lAE&^q0eO}eSzwXJL4PE(Z7O-b;z3)IWGyY5f|8`k#&95SZ6X6mqAo!| z(X&Z^!#%TQBEzP|NsoIRSuExt8E40+ADHs!Py;oPRuvm`EeU;x{CCuQu^^QKM}Wp? zmZee=aog<8x2ao5S&L&iAW#{E!e~G$uMH3M+OrNcZ9`SADaX*M)5$pqmEtNFsy%!tWpBB%BW3E?HpwK4B1yA?YbiwT8x$WOPdK13 z>8DmlKtj#cRUvT{5~L$%lZmXBGnV%_6a%?P;8A8Iz8iKSpM%pm#v$LnBLQnIH*K~% z!x=yDo<~4$q6(BtCdanzl6N>jN_J@~%f*aMBFK7(Gzfj5FL1(@yV(rZd(!VwvRq4u zzO5^%_YTq;8Dg4!kB%oKGzta^MN!FewS$bMVg4RMIkpl}OVW}4V1O>z;$pZPbtN`N z15Dvtj7?vke4qm4%MOM@yLTG4rm29+&CCbWWCKK$!nS3+)4q|SMRQgz6+EM z0u;+G$z`+I$jNw2ieic2jHdbQ?3_I)JsV*H(fNETrzbt*+#>*xvqy*F0AI~r-0#W7 z`6;Sr$<2H#j^`6VL+(SPd=aE9A*u2uTg_!KK=nx5cDt3lY{chDLZhok$&HqmsMsz|#G$oXu)ipX4CYr<$oa(uh9d&2NL3dSp3(ArSuE#raW;mC6@rwa zj;(2A&my2QtGRMHpN$9RfgZJfG8&2nIn_c1KP*ATToI|%ochZlaOV4{d~Saboxf; zwG%c7j-pn#wW*%T$p{Cvku4!)PU=M7UR|RZIIN@Hqq2X3fI^f5>-%q~)Ojc&Irqu= z*<=KqE6NOB0A-8@c+|93ga&o>_6o9kNbf;4*OXun=;@2x8<@dF33zDdAC9L|jKPYY zuBp&YsPd_2pGxTVP9#lBhLKe6Zto;5O0HG1S*@f14J|oEO1q^h;taHwTyq?Y>KT}n zsenDpfl+@Lh8P=+P%dV`+q(rC@EOw)Qfgx`9Y{ppce}0l44g@t(F6L@9}bxbYh-x@ zCqfxP+S}Oz-Iz;+SiSk@8xW0jK>2%^kRWsq(uOp# zqxXWE;pUI*_xyVSjUz|rGfxMO?;OxtS2p{ssWIiCUN=)2>skpqRh3kSik9zNlxPrO z>;d#__wc>IOt^Wj?*-;YjO0Am`&6%HKeYG9UQU0HeeD>3_yGH(;{B0-k2>Hd-}^_p c^7Qt91ARicH7Ak*<^TWy07*qoM6N<$f}cvIr~m)} literal 0 HcmV?d00001 diff --git a/ballance_blender_plugin/icons/element/P_Trafo_Wood.png b/ballance_blender_plugin/icons/element/P_Trafo_Wood.png new file mode 100644 index 0000000000000000000000000000000000000000..5a87a7b7d52d167ae25b6024aa8ed76e9bb94100 GIT binary patch literal 1924 zcmV-~2YdL5P)+TFMM)Y)sV zz4qFtr2q3PIL2R=<@oj2dRo%^0x%3i)AxO3ah-F0nx^I30`R)M z-Ho(9Zre8c;M#z6one8${afn zAOuJ-$Fib@0Ek?mX=pVNEeK*oL8NJ%H1b~9a#>2QzfwVCTDLAYO>;fZQ)N37T)+F| zBcDZ86$*w(o7GBXRqAB3(GT7^RhFenvP?nL=<%0N^q;S``r*6x_1=#kYInWYzb|W8 zS@h0nsrMdz$~q%A0CZUAd0rU+6Whxd7f;kTZC_vN_dowgQDoUU=#I$b#j=P}Sk_u# zWt{!@aTrx*umkdWn$-29V(v>}%#vBgMSuO{FEn;FYn%2M-1fU!0v}*^@w7SAb!OEV z3DyxPX9EZND2X)@dxDiXP5k<%={1a<5^7)Mi3i#OAh0!*s|!XAgLPA+{nazgVcgtI z`V|1jZY)x#E{xbrS{0eP77d^UcqF(}44A{A)l8l1x`XOgWx?HL-OIYo-<%n;_A|8yT=Q323t_)$aMAmJJRBU(J)E7+vrV(NmVE8dW}G+lsc!1>4d6)_UlVsonI?+2`!2^0Tyw4-wwJW_;RRiD>?h`#_RT9{4hh4F;Mrj zuIfoS870(mO}3{1G1=N4Bn*H~MH%Vr{`Zs@XX?X(%rljUF}7|Y6ZnD&%xC}&#YGi& zGhiC9h2wy_aX7V+Fle39?`cXW$i$W_O%g!1I33wqXV8A@lZ=*)eXWOq>j(~C3`9HK`<+IAx;JmD+?{Jc9$pv#6*!W6ECQFqUBg0!%*cGrIZHkkwd`!u~O=g z;}L<0#&^IQL}>gN2@?R<-MK6+_`nR%S8=z!F(V-8$j?t6JAPYD^0Tlq@sza2G{nRPO85aQE3BWVJdx9=Q+Y_t6C%Om=} zSIafC@3JgRrCvARzgKEk?_U^^)$_*d6(cf+{1U#{4Z=pNBGu4^0GN~-I6(EVVHw8+ zJa8S0M`SF9zBI`+yG|$E*I|qE*sG}3X8#y|srH4LN#3~dIm zamfrQ@|YpR{HF}D9X@FGFhH=_vt?)pljqN`6xb{o4%$9FSIV4Nh8?5#MT_690sGzh z+Ww22)>Xm?4#+Ch!w03(ELXM4zdrRaC7E_s?`S;JIf1XXoi_Oau_4GZ#vLzIKYyko zp7bMjH8;K!fRAr2#%F|atg2kizEjBf4FD9uMve((aiXd3{0Zsay21r*F3>dqtyZb( zi(X@cNMZ6~%V&X9eeb>jz_CfJ3nmo1-}k!QHXcm2>#<-*7I*`0=#AFSf9ADJy^g|< zpkMfVKqn4BGv|qW56>7@Jw6orGvu8jJa&PNS*z#a&}+|o3kVBjbvE;{gK0?cg(1aZ zR{!|tzx3qkCB_2)(;DrWz*>$L9^9uyFlIR4XhaN_ygJ#a>F9axsJj6(T71hjctGs1 zW^>6rqbxarI42R!HXO+%gunk3D$ zvfAj+fB756g8$PxBh>nG7!&&z4;Z=DBS1PJD>TAJhcTJm#!NzoMo8J~C9-oNW&7zT ze^3w?TB0t z5Bmc~h1tMXK}W2ZoOTK_#SQkXkd*3!Twi?lp^wXR!B`ZoHQ{K1Bm&5bzAf+@U3y)~JEx%FrUH9Qy0 zej($w&9ba|TaRY1+xy!dPJcsu4rKbRNBDLhPT%_8w_W8s{Pkb5RJpB(9kt&80000< KMNUMnLSTYzxucQ* literal 0 HcmV?d00001