From be398004b792fc669f4f675dec08d852d716bb3f Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 00:16:43 -0700 Subject: [PATCH] groan --- code/datums/components/storage/ui.dm | 16 ++++++++++------ icons/mob/screen_gen.dmi | Bin 118971 -> 119011 bytes 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index 68bb12b303..b904d44392 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -100,6 +100,7 @@ used += volume volume_by_item[I] = volume percentage_by_item[I] = volume / max_volume + to_chat(world, "DEBUG: [I] volume [volume] percent [percentage_by_item[I]]") var/overrun = FALSE if(used >= (horizontal_pixels + 4)) //2-4 pixel grace zone // congratulations we are now in overrun mode. everything will be crammed to minimum storage pixels. @@ -108,7 +109,8 @@ // define outside for marginal performance boost var/obj/item/I - var/pixel = 0 + // start at this pixel from screen_start_x. + var/pixel = -((world.icon_size - VOLUMETRIC_BOX_SIZE) * 0.5) LAZYINITLIST(ui_item_blocks) for(var/i in percentage_by_item) @@ -118,12 +120,14 @@ ui_item_blocks[I] = new /obj/screen/storage/volumetric_box(null, src, I) var/obj/screen/storage/volumetric_box/B = ui_item_blocks[I] var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(MINIMUM_PIXELS_PER_ITEM, FLOOR(horizontal_pixels * percent, MINIMUM_PIXELS_PER_ITEM)) + to_chat(world, "DEBUG: [I] using [pixels_to_use] pixels out of [horizontal_pixels]") // now that we have pixels_to_use, place our thing and add it to the returned list. // now, scale the thing var/multiply = pixels_to_use / VOLUMETRIC_STORAGE_BOX_SIZE B.transform = matrix(multiply, 0, 0, 0, 1, 0) + // unfortunately since scaling means expand-from-center.. ugh.. var/px_add = (pixels_to_use - VOLUMETRIC_STORAGE_BOX_SIZE) * 0.5 // now, screenloc the thing. @@ -138,7 +142,6 @@ B.plane = VOLUMETRIC_STORAGE_BOX_PLANE B.name = I.name - I.mouse_opacity = MOUSE_OPACITY_ICON I.maptext = "" I.layer = VOLUMETRIC_STORAGE_ITEM_LAYER @@ -178,7 +181,7 @@ else if(current_maxscreensize) maxallowedscreensize = current_maxscreensize // we got screen size, register signal - RegisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT, .proc/on_logout) + RegisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT, .proc/on_logout, override = TRUE) if(M.active_storage) M.active_storage.ui_hide(M) M.active_storage = src @@ -217,10 +220,10 @@ /datum/component/storage/proc/ui_hide(mob/M) if(!M.client) return TRUE - M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_right, ui_continuous, get_ui_item_objects_hide()) + UnregisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT) + M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_right, ui_continuous) + get_ui_item_objects_hide() if(M.active_storage == src) M.active_storage = null - UnregisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT) LAZYREMOVE(is_using, M) return TRUE @@ -241,7 +244,8 @@ else . = list() for(var/i in ui_item_blocks) - . += ui_item_blocks[i] //get the block not the item + // get both the box and the item + . += ui_item_blocks[i] . += i /** diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index ffbffcab0dd1b8c809830e4544b548ad075c5ae5..d00d0b079c8b1ea8d1409111656a000ad6aca300 100644 GIT binary patch delta 6784 zcmZu#3p~^N-~Y{ALqz7dWX>oR+9@ITB|=A0LawWbgeXVk_FL3Jh2%)cr4A+6a!r{{ z<#OC6xhEScG7K|jw*8*pI_Lj?p8xYad%d=O_qlyPm-pxM{eAc5vDoxuF+wfkem$rX z6QC|}&CzT#lo4VYw%E<;&eIEP%VyYA$20P>^*qJcyttW&UQ^lhDS3o6m-Hg+_!m~# zLi>HiJn@S((xqvq^kLS^FVoh9gcbz_dwd}azmYBL{uLOJ5(ENKK4ZKLT!7%b z5e?cL(rXswgMsEGi=mPK#9TpR8;^n%_gF9*jG8 z;7#QOt;6Y2=C(ho8Sg!OC7z%YxP%Tn zfo<`6F>4@L_Fgqv|80lG-_&Vrte;x~)Ejn8x)PzDa$16r)KPhE+L6S|3@!J+u04=v zGPDnLlxcrjcWJuKGWB?1*X$hpMPCkEY=&d@iE!m#$raI}fcITg2?S z`4bqry6yVq*`KwYBP;l6LEbgomSBzC;WN1+eRI%*N$2O3(F0ALV>$#E$i`;VsX)&d z9196X;mV-gqoPg)H37bTKbV^hy~XCwK>DMYi%`_)T91GEU1|ekdS$6HePG74De(Od zso~3Nwz0iqJ;)(HMD=MXv&W5~GYDR|f+~DAM@k8E#twoiGo{|8kU_6A@iY|tNM*K| z6Ef`y>^?K6M3|2xlf^!O8?+RqFGYrb-czi&=`9ecU;Ir7V5NyAv$->9D==5)60R?NH?wlSzu~|#? z-hMq8=-B;n9}ZJt-HgE`u9v5RUc(Y2NzLb*t~S?wN^4Y82fv5sPUH}=>md`{(;s>f z;-IHVwPRp)H_G?JMV$_hl%bjNmy&(ATyDj{b+fM#aT|Xa(D^uaSr75roYrQq_c7=& zO48{_G96fD-Fp7GcvPs%X!h;b?DydShqIaGf1n5DdnF>udyzu9Z9B6MrqVRa6}%e&l9(g=HQK}w(|@b zbl6hgMf#@p`uVh;W6_)jsVX_8RJ?f5E>O74;IdS{^u4UL)wI+#Ezxy9%NG}ZtK+`p z1reIu&3I@#g%SGxv=EPbhC18dZ*n;CeCS{>E~=Y6^yw;eo-eVF!i>-7^S9q1ibA|k z^ei7>Vc1>YfM6UCL8lKTee*JCscNWUh^0+IzpD975pw>55RcgNh@H1ueJxR zLWxzZ+zV;9t4B>LJx=+Z`x7#csra=^&ADRP3*;Ymgy?w4z4wuk1_t9=<(;Wwc)0`p zJD(OvusC#ZR%?fbB?eIU9v1&=9-``xYi0Q>eq9MF)BV$k=N($!T$xO!&1$UFu{MSf z4|$MDM0uumM#R@nU+oup+1}umC06)x;h=J45*>oN7*wfJUP#YGTCCUmUSq;5KC~z426~D#6>~@izt&5O2ZG7BWcH8T>@Ei&PEZ7kDB-# z`bqy#u9$hG?l9Tq z9>Yy5Rb`kXL5AtB(5o%zQf$8tv#!)R_;i6Z`6McYJvG*j^1# zGTNzsO}(mW9YnI+Pywj597f`&gq7DOX8-77y+%~L$KOP+Ush64p`Te*@sU=i zxLMKYGs!t&#~pru&>4K?Mr@7`pk5v**_WM#XU3VXt1t7q^zM96LcB{0vACy)B@Hq0 zRu-GBI~kr?x0+mcF|J9kQb4apEtpoE-wx478PT6nD-)#aHGzd7^bP&B%AZ7KvMn|~ zFq%BPP%F)YkZ>rmf|Y#jJdvcbRmS*BgKHjr+25lZ%b;Wah^f6i!DOr# zmku<;s^eMs?>acoVi0P6JTd{naEkbc0`)bgyRyarVmm6V{|lDDPvvXLi%44>JX|YK2L8ghgu8=&}@{C>&u>2F+EpnY0)a;Cc8` zM(E>kkP9>jqpte-=WlWRw{KS1^|#J?kyEmtdJ-qln#hVd5;1y~PS4nQUc7+IxQ6Wa zJsWq47#aIl#Sypb`HJPpGncap^b0_0NF9X#4C60S6xaWnfGLA^nk8v7%^sOv@9!K* zYYv^HJl0y{A6>DKQ7_?JaNgdsz(y?Pgg}=LtiGRc-3i659%fzdX#n*b$6L~3H=a4c z;@+Q|lj~5!A=S)Nf?_GWGT{i6y(p1kiaFapjNtwMIo}0mfGH9fK`?w_RXZK7XDP_GBZFvCa4|>isjk`Q zdSGxps2+rp-cy9S?N3-Y|IsrC4i>qM2VOyhR=N>X2f@rhl)4QI|20RX<0Ox9=vmg^ z)DRS5&Vq2ei>pfTn>I6QiVj~QRwDXzErZwixo_{p$*3u(#3a|oLzn`jtoQ2XO9xZb zhTI1lHI9Y9rN~Q7T@%yA8SC|3)M0D~#cKgTa=^~&@agTRc&?MyB=|`%0i_mvoffu9AfCP=0}6}r1))kt^4{y6!ZQiD==V&RoCIi|en>{6(+WMJldD@Zxbb3Ix- z(aC;Z3hi}&-mtRa#1nJWf3C4JPoz&1XPW*l+NEpKtil(*(RdJ{U3nt5V;eRJ;HN>b zxCXE@fi5nEy!p{Y0W)Z6ey}T)*(;>E!2Pp@wD6;mLSaY4_g$3ir;(Cif){vDLL3bE zmlF6xtE+^swG(ln4tif5_m)Qgv*NVR!iu$V#*@R+Nv48u)hG#Ai-^W zG}$tnv*`>r22*BWuAl=9k?~gG776~lW=@I&2ZK>rtIX8>v*OFI{}TQ!nwz*L^Vjqz z_v9o|KIW9|61pC~%W|8W&6o4l{(vtG)i+BH7i)(v?W?jXr^3VV?j! zDTU?)*I5iES1ex&1q9Ntm|LQd)`|Qj)?xg&2L+R~PoN)*s)`49G$@oTEPo0_H23q@ zoG=(c-=QBE!FjIWL;eruz%$XhxnX*z!PcVAaNH(^`=rttPw?(rP)k|#(o zW0z3rESXxAOxSC@WEea46Y1|?msxJUG<5xf2ZfzKlf1r~k)996dgIbtz=yC#c|Iup zwnvLUcdgJ`1o{RyWl$>GT}stX$jVqA@#h>`7+UaQY62KP*}Zwmgp(}%7W17Rn+|6# z?hn-zSNv`-e76*ojcG{h$pGG`hU^kLI%shqu2&eR`Hji26@KCjb<8*j^~KuD0pyf? zd7!ZO;5OL+Gi@42hR;AY%+{;u$zqL{BJ|_z<<##tfqIUSL|i2e->Qkg{AKd-=H_6S z2()*Xgsj~}w$^x6fi~N9za8%Ba`aZdvp=jc38!lbYbp2#Qw#MzFsFaMu1l}O+$r0D|`1uBDrPV?kbIL{TZ0gJ% zu!$GD$Btl>kLBmDtrrV_xsWEN`7?aR6t*4QjlGi{bkWg!ikmr8j+WC{rsglI|FW=67W z8F3mmPE!j6RIlvdW)bNEZs`r-!sh(&SR}mOjn>8KTT8;mac29Gj!u;cp!+?TKCX@+ zXxFO4%7<{0vX2TyBmjUc?FZ0q(rG>gDA+AWS52TqTOf?n{UCJH{fR(iKmq=bV&`y+ zg|00uuK?FmS|CA?uLTfW`{IQG!1J6a5K0bTauDpvvK9gc z7|1%=iBJUl1q6agH|%E~ohH~8mzNFzB^m;wCpM-`==EBy%D7NF(Vpj3z9%?o`iwNJpo5|R!D zwOmPoy}VRJqzk_R)e)h+iq!R13;LxPho%{?lm%r$kV#tkGv|3X_($;H=8--JcKNtO z*r%U0sI7O7%sL}11*dO7To3+)3l}rOk_MbbNhh2O@-$RLZ)+yHjnY zWCp4B>?1O|q-u?7VVa1nvk?MbAQ8a8?{t)A{<|A{;qb#2P^thhN0FQ|wmpdT%09Ax?h!oCXPi;Wq))8*8M>rN}|bjq9g!f|;< z-GO!_@M;D#5!i5@v>SuXR0u3mV!pdD-mwKIx%JTj4m4g@^~0Q#1K{)5pW0jOh|+3gldKJbic`EUQ}(dfcB0bL1{0<-6(};IW0%f!w(T9hQosqegJ{< zZ(51pkcUDX-}zOdj>{NN$XPII9?@acGLk7$IAUXEvmQKW6eZxfQBQkyRKI4TbctE@ z*39>1|Ds~aUU)jyfx+-JP$EQydBysR0wq{@ob7iHox5|%kLWx(gTEEsalZI7*3nrL zAVgz1Q)n&Oh-cjte1VY8TPfVIMsGKKhmaCRpumo zX2Ug-5&L%G?jB41n#KR{fGz+Ew~)a9&amV10Yd>6HQ;@$ft)Xq?ug zSNyMh05<=b3&7_8$peu33(_&9vWx)_R>24cQXPBB8}@R!WuY=|<+Yn4rMKZ3sCo_* zEu8RlrDh|5xjO>F;~cjTXZD8cq+0cvfOW~!3NXeG!J+<-WCDlaIQ~y2LvQ{^7J<;4 z|2KsI4W60*jt_1dS`z4@2SdYz#&)6M6iP=02rTz7TrH(<+G;PxZ7`9(@DKx1Zz8kc z-Z-4K9>3DK)zjbqsaT?ofuR@G#{KhRmW2h*Kw!*PA^w3!!(~$~3^W%yKUVsdLfW!^ tul3j)d|@ek1ORoXZwSA)n-T#anbrYs%+)1vML-g!+gYEmsC|6fR{OR)d| delta 6743 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