From 8406c478924d4364b9a017f655e6757863341ff9 Mon Sep 17 00:00:00 2001 From: adrianna <adrianna.pinska@gmail.com> Date: Sat, 10 Sep 2016 13:25:06 +0200 Subject: [PATCH] rotating spotlight fixture --- TODO.txt | 2 +- data/images/32/spotlight.png | Bin 1429 -> 1294 bytes data/images/48/spotlight.png | Bin 2154 -> 1913 bytes data/images/cursors/spotlight.png | Bin 1429 -> 1294 bytes sources/vector/spotlight.svg | 12 ++++++------ tabakrolletjie/lights.py | 13 ++++++++++++- 6 files changed, 19 insertions(+), 8 deletions(-) diff --git a/TODO.txt b/TODO.txt index e94fc8d..bfc582a 100644 --- a/TODO.txt +++ b/TODO.txt @@ -6,7 +6,6 @@ TODO * Battery and light power consts * Mould resistances * Mould power increases to prevent farming -* Fitting rotation * Save game * More sounds * Five levels @@ -17,3 +16,4 @@ Done * Light colour selection * All lights multicolour * Light direction configuration +* Fitting rotation diff --git a/data/images/32/spotlight.png b/data/images/32/spotlight.png index 4e55c022e23c4665dbb2ca7bef6df1481cf7f6c0..0cf4b791e25a405309b35d0c5ca16bcc53a425fb 100644 GIT binary patch delta 1201 zcmV;i1Wx;v3yunqZGQxdNkl<ZScUDDT}WGJ7{~unNt$!eB%*N^F|nW{x}IWM2*tqS z2W^#J?MATBOBv`*VH8R!NH4Y(gxXM{_HKwYWrJO~i;hBY<f5n<YiFySn&?TQhbDIU zIv>f&N#0$!lciQ&X(QW3|5xXI&cplvJ<oYL&kKCiNBzgr9DfkAo;Y#BZZeq|qtV!8 zFc=IJMNxXap3-Wy$EvETD2k#KQ535HKz&veMU-VZBT14dilUg@RX7%l{m!!NZvZv{ zkb?j!T`t$0!{IP93{%fAjLBlLpt`#HgDOm?(_mQ^&z?PtFD)&_=I7_5b8~Z_11P+e zeEs_MAUR@PyMJ~qQ0iGxx=<7)_d(^pgYx<O8y=+q$G5h&Dhq|TJ5w$d3I#+WkqQ9E z)mS9}bai!odG+em2TrH6X?l8E)6>&)Bmg&V+(3VSf9=_`XD=m_$#ggz{<R7K%w}`< z=;&wz0I)0zNs^$~>&t2`NfH_x8*%aCMGb&Yyk2iFfPecH0FcY&6g5$=*F%z|vYG>c zD2kwIy0}&pMFIXk1F|f?0g%aL$_}u%tFkQTiU7G>u6QzaI^B_VK&R6c*V$}VE&^n; z*(@QuKPZZ#2+#9n2M`1SG))r#AcR1c<$nM~QQU||qW}P_)v5`FLS+YFSr%5SRRaJV z$3c>$^?xG3`uh4}AP~p{Kub#tHa9nq1i)gk0007kKt2!%_=^BM&#$elto#Y=o`H>x z4duX{-cylCB(K$K0RYR(%dgYv^jZ-B0Jplj8dsC!@wixSfOtG!JlVluFaaQ13P8f) z@P?Yu-rf$s-=8m+`QqYYzN4d~IEFcn3t`V#hJVB1_&SkD5JCuHS(fzm^|9refW5uF zY&aYygb*SK0&zN>cU0fvFnap*>35GFJxTyTb8|CHCR2QJa&qfKt9QHIk=okYL{n1} z0AO}@HnF_Ce1G5Mp`jt4N<BY6FF70zkH_PQzHj9-Gc&L3cKZXr-!G`K!NI{_4y0um z=6~{&Cr?B*`PQvlo2O2l`sU`%n?XfU-q~1D6f!n87U=Bk{C0eNd{d44d_Ml<$&;53 zZP~!Uz~f9NQ{3$K?b{){-9FLZ-#<GwHT5c$N*!pNOeV>_d-q;lxNza8)2C10al73i z^<5^DAp-*gKkxN>>rzV7bi>flkaucos()Rh*?k=h2J;gW6ED`**4Uk$oob`esA*_u zs5Tf3S^!8UlQPF~=~OC3>gwv!t*x!rD_5?xx3siW0=pNH;o;#I4<A14;dwrKC;$Lh zEEZdLclY;q@80bw9iafQy}ga4r6n;Ii%HRFGz$P`vsqVPU$18vhH7kVd?TOdd4G(I zj6C;xy<bEkk+nnHzelF?=g<G>@pxVr3Waz6{;CRv0-2ea**SOa+z$YZ2bt{Kfl^tm zR)@`I`^sjsb+}xv<}+u`(0i*?#c>=K78ZD)&lg%*S$Y2Q<;(G4Ft~Ww{{IS4q6(U( zKWl4i>!WG<)0&!^V>+FV0)T8bD=MZ^sf-{9f2^*qJ{APw1@^o5{~z@iEpMJj$;;y6 P00000NkvXXu0mjf_NYaK delta 1337 zcmV-91;+Z03Y80xZGQz4Nkl<ZScS!xUuaWT9LK-6e>65r(yqA@sxJ1=7K1)y9YJWD zJcNxY2%7XkD8<*l%?Z8=eUtiP2$YtB;zKPcbV?Dnxz<4pRd7sOT<d0SqPK~yH_h$6 zG09C6?{5#yy|!7q*_yB~T)6k#AHVPCoO93bp2H9k{!dkHCx4h>m|Xz$MHc|1)?Y-l z`oTHZj{w6kW`n_SsHv&xsKH=3Twh;bUsqRGZ!j2Y_w3oTTd&ves;jH3s;#ZvWipv| zn@lDh0EnU}i=voaSy@>X1R<YFrB*YUOg5QJt_Xs#yu7@;EJ@N#I2?YMOeUWZQCu@6 zA`~DPkH^DJOn*$|IgTSmQK(c>6oojBqlt-$yvO6=)Q%I;djKNB*|TS#mCSVu6+AT0 ziuLo6&1O^E`6hOvVvh{~xm>R70L2~~05X}(+j0XGdlUndeFTa<GysNSOtDz3-2RBg zVqh4?r1=sN91e%?#EBDu=H_Pe%a<>A_xARd#k{w-7k^f(HT&Yli};;8cfNb_<jD^p zBAhyPYD8Toe!rh2Nh<mBlO&1!e!uoy@LZb$S(cM3CCjqJ^L)vB&+|N3metCx>RAB* zk|ZS+MF9X<EEbdtz+$lg02D=mBuVc9WLb_T5(xkR%d$*79^Wd@junr`!Llp^0Et8b zvMfh60Dqq6=ha@D&1OU*k&**MA`zI)W)%Fu^ZdL9z;WEGrKP2u3J?qilUrump@P9+ zQUzFATFP-8_eui*z(=D|2>`0At04%2SZV-45X9>0Y5+jNi!TO9tHG6(l?$OzC{rr) zP$-nCtgKv6p9@~^0f;D@NF=lxy?_7y)xN&I2Y>3y_!udQg1)}K2L}!u$f<3KMB*(G zWi@~TRam`uI2<jLlam($fxzpJ1qcKJuO}xbFE|{I&(*etg@t+bUIUn)pZ{GH*QVa* z^EEUyG<-EWI(l<@disO+cg32Xo?aat9lhDq)O6JA^;!Tx6h%CL{`@yBNZpy}bh@UI zk$(|UEtTEf-46j&xLmGlQ&Usf?UvrDsi~~X<+=u-;>?*dkJR?-*RL-FXr#@yWL~c~ zs0Pl=%;cO-=XoN6+wHzGHZ~>}n{1`Au`$u@c3&YPIGxV(v$L~#_1(#nCx2b<xdFg# zw|{;6_HFG?)ZgFFwYIi;i3m2E&C}W0d4F$wd_0-Y=c!ove4fU~$CI6%o%d`un}>+d z+S=;v@9*c-m|M4Qtu!|`d$t51A{;+{{HJs}ttB2B8j5ywbX)|WBO+L>R!@6-`z4>x zH{8?HbGN6b=dRD^8*XoJzht#qJ+!vN)^&7rTpSu2imG|i=`<ZXcI?MuzYXUCV1I36 za{Bb?UxtT=omEw9=ax5b-r(}(%YTH!;XiqvPe_vVS0oa76pzQB0f5<TK6LQlL8sAZ z{DNiKPa7K>ZRgINJG^)AUI0KopGS9h_oEv(ZhS*T8;e{q5fP!Lrlz5*tLw2K2%FCF z;^HEOLZNqqgM;zG!NGVa6neL~xPQ25tRM)~)z$U5rlzK0Gp|hn3Zr6dYiqkYFfb6? z$st8i6dD*9h_$t~T?Js=%I6<bP^^9X_I-Ke$dT_`T3YNbm#f9?cGs~i3$?DR%H?w4 zc^<)FP`H2p{@mQ$-0ah*PyNwo^zpyt|4)GR(&=<9cDwysolf_eUavP9jWWhh06>zY vx2aT0lx6wV?Ck8%vMkSiXwGc`ltX_5VH`IQvK9#I00000NkvXXu0mjfUU`;Q diff --git a/data/images/48/spotlight.png b/data/images/48/spotlight.png index b7231c866d80264957aafcdfd9736724d9571a75..e4bdf3d313407cdf5adbeb21b6c27ef743ac0e6b 100644 GIT binary patch delta 1825 zcmV++2j2MV5cv*}ZGQ&#Nkl<ZXo2mSTTC0-8OJ|gu(1tU!T{NXcx(oHmtYZ*7!iUh zK?sCgP>`yGhh`;9d7@R@x3<#ev7yz9Diw;V7AaC5qC8bvB~{g;P4iH2a1Cq{5=eK+ zVjE){Y-4;Gd&ZZUbNUc)XAI#IF3tl#X&%luXJ-EYbG~!&F@L}T2OMy~0Xsml!{-YD zpj2=b0>CFL_oM_t9033bg+hw}fLG#C07wGBvfxU7sDRB3lmLK<Ac#{XB_$@AO!k>f zCM#9Fqp+x`NLF56E~}`hkXKYxD2t1W<r<BqP_0%=0RRdM3jqKinS7^@VHiG<NTg_* z<^q90Di8>8!GB<or)io`CX-2)Wm%5nLI|O^kw|1Z6biinfT<PJTQhL{`0*cWG@36p z8qJ|&$BwBR8yhudv$;g4(*a46P+VO6VNJC~XqpDM+YK(43!XoJ9vK@OOZa>~CLWK+ z7>4<s$K&~W!xtEh#=lHWP2rD?si`SkU0wa>T)ooV0Ds4EG|RHP*rvNfB9Q=|=VQ6? zH3l-7%tvW}Wm(8%GMgJnrBYFbVfIJWHeeVAlF8(n!JKR0Xe1J;nwXdXj^p-8+U9T^ z2jk=85RFDD0QgjRFKa-j)BUWyz5Uz4!NH%)WHRXL>H@#tzwcsmSzKI%uC6XnC=@U_ zIQYx9wtu#7wOVcOnu_)H_1__cvZH=vWCZv3_vdlmc}IVLKek$}*)l>1*Vos7x2ika z14^Z`KqC47vOtm~c)i}eZs1MvcsxLoWVS4kNI;=b$XCl*0|+5r_@GLqf{$S~Vp$f{ zYPBeaG0tku8sK^UqcxyXsYEf3<F;mCbq|wISbvty?x|K0Y84s~&6_fr401f>1&lFB zrQ+FMnC`+cfc8<>j##$`xOG-8jB#!#?_i8Y*&^(lrRC-2JV@G@+(uklS^|u5c7+wD zkjv-ui7F$6@;VN9o(JLD1OVXmdV%M8$7(riAR3K+@9}s<mCMV^aXuF_x7!V6Wo4o+ z@PB%}5DtfDR?Arf!C-Lm)vH&uuyS2p9lUw-X7820hw15QIC=7<C^k7c84ZWSuU5;# zF)%$oJ}xqF`t)gu)oR^al^ZZRItr&wof75H#Kc4#0RFq~0}Txgv%-xO!!X!vHmCP- z?<T@*Hm8%xWNz#Sp=Qwv5sSqZgxiOeC4U^{V_O{v1VAE@Af-~7jU^HZplNzRSWjdi z9*=)xx7$T8x^m@8#$vIA_fqV7+_-Tg(%s#i5yosb8%`t=|J>*~Q*UptU)W_%rxP0t z2Cv<2=l3ghMn^|^gTdf+yWOJr&6_tD0pPO@o!8dZelPrCgE7V}EiE2{!Qcvq!+(1& zetCHr8;wTi`Sa&J!Z<<*n@pz7r$oJ8|Ht9sVNq*atyW&E)&A|=xpTgBdhf<`I-SO? zt*t(iB>!%+*+d$iK7GoQB>B}AvJWacIy&ZaUw-}ib^qbRhkw=C*}0HPrFLC>GMU7k zot=JyAb#D`)3ca+zqPg14FF|ZF@FFQMScDH^=nZcg~MTNGMSu*4juZUsj116o1Z&j zZf*`YHa5;{G@757OeSY;s=j>r5>XWO*DZ-(;nTBc&#vhOhr@wuYHDWXa(M?uQ7`V^ zy-V*TrBbOB9vB#)DT;a_m&-5I*4ECtTrN=^gb+S+=8PKvDz;+)bUNLa1AhYpvD}Xa zgF)QZ*5)Ni@+*QMetP1>i68p<`l8$E5x3ioZ{NNhsi~=XTUJ)qtJCTJ(B9teTUuIL zQ}@oDJ28?ZfAc<_8y&Ap^m_f!!-o&gH#axSa&JC*^eENW*S8oBhyUYrI$!E^x|WiX zlIqIJN_A6HQ_+zlM+!?zOMjIB0HIJQ<@ftpyWO7fdc90E8hz__yN7i;-D!d#&fL0n z>*&?1R~5P67#<$xEEdbZTrSt84>14$P()GGzaKn!aI(3%S-xI{nVA`Q{P;2b<jIq0 zC=^OC43o-aG6e{s6acI)L<Lf*R9R3^kWs7EN`fFX7cN}*q`SMj*nem=uKVGUk&%qW zVwrS0oh<;cqq9zRRaKSs{{8!j?c{eX7Q^%N^LT!K9>-#9GI2xh-MbgBs;U|W0M(}I zwuqD@$=_eTe0jm)aBNG=c9@-=#TPGLT+nK@zlC)Uo_B-KDT?~0r>AGZX0z>zXoL`c z_UswHcI}$4y1IG@0DsocsrT@qfASghdi^idYW2msy1JrEmoAkxG&CqEidu6Bl?%(V z;BYu#Y-}twG&B^No}Q-T@%TUH=H~tc0JGZ_veSPl0RWDwRH`3UR#tXMBod=Sp*XBi zD3o%!Tq2c96#xJTp)|*FIGs+X(&=;<AvELj`JS*WYXyMCT^i7EK;HNtiruk6rw}!* P00000NkvXXu0mjfB58L? delta 2068 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 diff --git a/data/images/cursors/spotlight.png b/data/images/cursors/spotlight.png index 4e55c022e23c4665dbb2ca7bef6df1481cf7f6c0..0cf4b791e25a405309b35d0c5ca16bcc53a425fb 100644 GIT binary patch delta 1201 zcmV;i1Wx;v3yunqZGQxdNkl<ZScUDDT}WGJ7{~unNt$!eB%*N^F|nW{x}IWM2*tqS z2W^#J?MATBOBv`*VH8R!NH4Y(gxXM{_HKwYWrJO~i;hBY<f5n<YiFySn&?TQhbDIU zIv>f&N#0$!lciQ&X(QW3|5xXI&cplvJ<oYL&kKCiNBzgr9DfkAo;Y#BZZeq|qtV!8 zFc=IJMNxXap3-Wy$EvETD2k#KQ535HKz&veMU-VZBT14dilUg@RX7%l{m!!NZvZv{ zkb?j!T`t$0!{IP93{%fAjLBlLpt`#HgDOm?(_mQ^&z?PtFD)&_=I7_5b8~Z_11P+e zeEs_MAUR@PyMJ~qQ0iGxx=<7)_d(^pgYx<O8y=+q$G5h&Dhq|TJ5w$d3I#+WkqQ9E z)mS9}bai!odG+em2TrH6X?l8E)6>&)Bmg&V+(3VSf9=_`XD=m_$#ggz{<R7K%w}`< z=;&wz0I)0zNs^$~>&t2`NfH_x8*%aCMGb&Yyk2iFfPecH0FcY&6g5$=*F%z|vYG>c zD2kwIy0}&pMFIXk1F|f?0g%aL$_}u%tFkQTiU7G>u6QzaI^B_VK&R6c*V$}VE&^n; z*(@QuKPZZ#2+#9n2M`1SG))r#AcR1c<$nM~QQU||qW}P_)v5`FLS+YFSr%5SRRaJV z$3c>$^?xG3`uh4}AP~p{Kub#tHa9nq1i)gk0007kKt2!%_=^BM&#$elto#Y=o`H>x z4duX{-cylCB(K$K0RYR(%dgYv^jZ-B0Jplj8dsC!@wixSfOtG!JlVluFaaQ13P8f) z@P?Yu-rf$s-=8m+`QqYYzN4d~IEFcn3t`V#hJVB1_&SkD5JCuHS(fzm^|9refW5uF zY&aYygb*SK0&zN>cU0fvFnap*>35GFJxTyTb8|CHCR2QJa&qfKt9QHIk=okYL{n1} z0AO}@HnF_Ce1G5Mp`jt4N<BY6FF70zkH_PQzHj9-Gc&L3cKZXr-!G`K!NI{_4y0um z=6~{&Cr?B*`PQvlo2O2l`sU`%n?XfU-q~1D6f!n87U=Bk{C0eNd{d44d_Ml<$&;53 zZP~!Uz~f9NQ{3$K?b{){-9FLZ-#<GwHT5c$N*!pNOeV>_d-q;lxNza8)2C10al73i z^<5^DAp-*gKkxN>>rzV7bi>flkaucos()Rh*?k=h2J;gW6ED`**4Uk$oob`esA*_u zs5Tf3S^!8UlQPF~=~OC3>gwv!t*x!rD_5?xx3siW0=pNH;o;#I4<A14;dwrKC;$Lh zEEZdLclY;q@80bw9iafQy}ga4r6n;Ii%HRFGz$P`vsqVPU$18vhH7kVd?TOdd4G(I zj6C;xy<bEkk+nnHzelF?=g<G>@pxVr3Waz6{;CRv0-2ea**SOa+z$YZ2bt{Kfl^tm zR)@`I`^sjsb+}xv<}+u`(0i*?#c>=K78ZD)&lg%*S$Y2Q<;(G4Ft~Ww{{IS4q6(U( zKWl4i>!WG<)0&!^V>+FV0)T8bD=MZ^sf-{9f2^*qJ{APw1@^o5{~z@iEpMJj$;;y6 P00000NkvXXu0mjf_NYaK delta 1337 zcmV-91;+Z03Y80xZGQz4Nkl<ZScS!xUuaWT9LK-6e>65r(yqA@sxJ1=7K1)y9YJWD zJcNxY2%7XkD8<*l%?Z8=eUtiP2$YtB;zKPcbV?Dnxz<4pRd7sOT<d0SqPK~yH_h$6 zG09C6?{5#yy|!7q*_yB~T)6k#AHVPCoO93bp2H9k{!dkHCx4h>m|Xz$MHc|1)?Y-l z`oTHZj{w6kW`n_SsHv&xsKH=3Twh;bUsqRGZ!j2Y_w3oTTd&ves;jH3s;#ZvWipv| zn@lDh0EnU}i=voaSy@>X1R<YFrB*YUOg5QJt_Xs#yu7@;EJ@N#I2?YMOeUWZQCu@6 zA`~DPkH^DJOn*$|IgTSmQK(c>6oojBqlt-$yvO6=)Q%I;djKNB*|TS#mCSVu6+AT0 ziuLo6&1O^E`6hOvVvh{~xm>R70L2~~05X}(+j0XGdlUndeFTa<GysNSOtDz3-2RBg zVqh4?r1=sN91e%?#EBDu=H_Pe%a<>A_xARd#k{w-7k^f(HT&Yli};;8cfNb_<jD^p zBAhyPYD8Toe!rh2Nh<mBlO&1!e!uoy@LZb$S(cM3CCjqJ^L)vB&+|N3metCx>RAB* zk|ZS+MF9X<EEbdtz+$lg02D=mBuVc9WLb_T5(xkR%d$*79^Wd@junr`!Llp^0Et8b zvMfh60Dqq6=ha@D&1OU*k&**MA`zI)W)%Fu^ZdL9z;WEGrKP2u3J?qilUrump@P9+ zQUzFATFP-8_eui*z(=D|2>`0At04%2SZV-45X9>0Y5+jNi!TO9tHG6(l?$OzC{rr) zP$-nCtgKv6p9@~^0f;D@NF=lxy?_7y)xN&I2Y>3y_!udQg1)}K2L}!u$f<3KMB*(G zWi@~TRam`uI2<jLlam($fxzpJ1qcKJuO}xbFE|{I&(*etg@t+bUIUn)pZ{GH*QVa* z^EEUyG<-EWI(l<@disO+cg32Xo?aat9lhDq)O6JA^;!Tx6h%CL{`@yBNZpy}bh@UI zk$(|UEtTEf-46j&xLmGlQ&Usf?UvrDsi~~X<+=u-;>?*dkJR?-*RL-FXr#@yWL~c~ zs0Pl=%;cO-=XoN6+wHzGHZ~>}n{1`Au`$u@c3&YPIGxV(v$L~#_1(#nCx2b<xdFg# zw|{;6_HFG?)ZgFFwYIi;i3m2E&C}W0d4F$wd_0-Y=c!ove4fU~$CI6%o%d`un}>+d z+S=;v@9*c-m|M4Qtu!|`d$t51A{;+{{HJs}ttB2B8j5ywbX)|WBO+L>R!@6-`z4>x zH{8?HbGN6b=dRD^8*XoJzht#qJ+!vN)^&7rTpSu2imG|i=`<ZXcI?MuzYXUCV1I36 za{Bb?UxtT=omEw9=ax5b-r(}(%YTH!;XiqvPe_vVS0oa76pzQB0f5<TK6LQlL8sAZ z{DNiKPa7K>ZRgINJG^)AUI0KopGS9h_oEv(ZhS*T8;e{q5fP!Lrlz5*tLw2K2%FCF z;^HEOLZNqqgM;zG!NGVa6neL~xPQ25tRM)~)z$U5rlzK0Gp|hn3Zr6dYiqkYFfb6? z$st8i6dD*9h_$t~T?Js=%I6<bP^^9X_I-Ke$dT_`T3YNbm#f9?cGs~i3$?DR%H?w4 zc^<)FP`H2p{@mQ$-0ah*PyNwo^zpyt|4)GR(&=<9cDwysolf_eUavP9jWWhh06>zY vx2aT0lx6wV?Ck8%vMkSiXwGc`ltX_5VH`IQvK9#I00000NkvXXu0mjfUU`;Q diff --git a/sources/vector/spotlight.svg b/sources/vector/spotlight.svg index 4f0d58b..11c4300 100644 --- a/sources/vector/spotlight.svg +++ b/sources/vector/spotlight.svg @@ -26,8 +26,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.4" - inkscape:cx="123.25557" - inkscape:cy="182.29837" + inkscape:cx="115.01124" + inkscape:cy="139.81635" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -63,14 +63,14 @@ id="layer1" transform="translate(0,-698.0315)"> <path - style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" - d="m 35.433071,733.46457 c 88.582679,-17.71653 194.881889,-17.71653 283.464569,0 0,124.01575 -35.43307,248.0315 -141.73229,248.0315 -106.299208,0 -141.732279,-124.01575 -141.732279,-248.0315 z" + style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 35.433069,770.01093 c 88.582681,-17.71653 194.881891,-17.71653 283.464571,0 0,124.01575 -35.43307,223.66726 -141.73229,223.66726 -106.299206,0 -141.732281,-99.65151 -141.732281,-223.66726 z" id="path4529" inkscape:connector-curvature="0" sodipodi:nodetypes="cccc" /> <path - style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" - d="m 17.716535,822.04725 c 0,-17.71654 35.433071,-17.71654 35.433071,0 0,141.73228 35.433071,177.16535 124.015744,177.16535 88.58268,0 124.01575,-35.43307 124.01575,-177.16535 0,-17.71654 35.43307,-17.71654 35.43307,0 0,141.73228 -35.43307,212.59845 -159.44882,212.59845 -124.015744,0 -159.448815,-70.86617 -159.448815,-212.59845 z" + style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 17.716535,822.04725 c 0,-17.7166 35.433071,-17.7166 35.433071,0 0,141.7323 35.433071,177.1653 124.015744,177.1653 88.58268,0 124.01575,-35.433 124.01575,-177.1653 0,-17.7166 35.43307,-17.7166 35.43307,0 0,141.7323 -35.43307,212.59835 -159.44882,212.59835 -124.01574,0 -159.448815,-70.86605 -159.448815,-212.59835 z" id="path4533" inkscape:connector-curvature="0" sodipodi:nodetypes="ccsccsc" /> diff --git a/tabakrolletjie/lights.py b/tabakrolletjie/lights.py index fef2b44..7b2c263 100644 --- a/tabakrolletjie/lights.py +++ b/tabakrolletjie/lights.py @@ -9,6 +9,7 @@ import pygame.display import pygame.draw import pygame.locals as pgl import pygame.rect +import pygame.transform from .constants import LIGHT_CATEGORY, FITTINGS_CATEGORY, COLOURS from .rays import RayPolyManager @@ -258,7 +259,6 @@ class BaseLight(object): else: self.colour = self.colour_cycle[self.colour_pos] self.on = True - self.invalidate_fitting_image() def tick(self): pass @@ -312,6 +312,17 @@ class SpotLight(BaseLight): self.angular_velocity = kw.pop("angular_velocity", None) super(SpotLight, self).__init__(**kw) + def fitting_image(self): + fitting_image = super(SpotLight, self).fitting_image() + rot_fitting_image = pygame.transform.rotozoom(fitting_image, self.ray_manager.direction - 90, 1) + + rot_rect = fitting_image.get_rect().copy() + rot_rect.center = rot_fitting_image.get_rect().center + rot_fitting_image = rot_fitting_image.subsurface(rot_rect).copy() + + return rot_fitting_image + + def tick(self): if self.angular_velocity: self.ray_manager.direction -= self.angular_velocity -- 2.34.1