From 3b2684f9dd9a15d3c6680a7505f13da150b053a8 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 8 Oct 2015 07:12:10 -0500 Subject: [PATCH] fix vehicle.py tradpoor handling --- python2-scripts.zip | Bin 225763 -> 225928 bytes python2-scripts/mcpipy/vehicle.py | 4 +++- python3-scripts.zip | Bin 225527 -> 225688 bytes python3-scripts/mcpipy/sierpinski3d.py | 18 +++++++++++++----- python3-scripts/mcpipy/vehicle.py | 22 +++++++++++----------- 5 files changed, 27 insertions(+), 17 deletions(-) diff --git a/python2-scripts.zip b/python2-scripts.zip index 1323792c5bb818f24caf5b1b36dec5df446b5b8d..445532410dcf365ea6e36b4499d5c5716eb830ad 100755 GIT binary patch delta 7573 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 delta 7425 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 T{3r#N@&e>g2W0*kOVED-PW|i} diff --git a/python2-scripts/mcpipy/vehicle.py b/python2-scripts/mcpipy/vehicle.py index 91cd374..a36cc3b 100755 --- a/python2-scripts/mcpipy/vehicle.py +++ b/python2-scripts/mcpipy/vehicle.py @@ -299,7 +299,9 @@ def rotateBlock(block,amount): return Block(block.id, (block.data & ~0x03) | (((block.data & 0x03) + amount) & 0x03)) elif block.id == 96 or block.id == 167: # trapdoors - return Block(block.id, (block.data & ~0x03) | (((block.data & 0x03) - amount) & 0x03)) + meta = block.data + return Block(block.id, (meta & ~0x03) | + Vehicle.stairDirectionsClockwise[(Vehicle.stairToClockwise[meta & 0x03] - amount) % 4]) elif block.id in Vehicle.DOORS: meta = block.data if meta & 0x08: diff --git a/python3-scripts.zip b/python3-scripts.zip index cbd5c7b4fa22b1d6194ab86440c0c1f59467df0d..be2b5a537df42ad29d9fd105c259e6f81682368c 100644 GIT binary patch delta 13167 zcmZ`<2RN1Q`#jqI5{%igjnviGcPBAMBn;)IHZJq{tsNR*LrsE9;VvKsalLK#s; z`M>9!Z_eR&{kyKG>+*T;=W~DV`?;UzdC&FUza}X%rzt2*^g#kr82TT-f=)68JMn@o zgE=&kC0RgH2r-f%u7MC}R9(*oKnew&)Z?HaaRY=wBlQf}fi_F!AQ1m&SACYC5X68x z#De>v@R8qe49G{yw-25nHNk?#WVq=gWF1)WA%*0==7t?1iXd{Eem-x5xy@LrIQHP#E>A9lHmI_foe~JTVZIB z$5P?@9#LkgaB{4*V;Y?QpHEa`8k`%mUdZZ9xX?csIg<%*!gwso!ZYsAg3rQ1E=b7p zY&akB2oyFnQ1jVvS0aqH*#r1~icr@cz!kC9Ed_AJeQTf)4ky5n5S74r_u&&I@T&j@ zt}Vsmo+^bGV55n90_XXs4^{mHehVAT=?aMCzio%|tbi|KU0PQ`y8j7`tAd}!R4Q`3 z29Jca7H&fTazo*`H9*#5P&m*)Wi-IgVpFo*h{w&`1Q)@&)Om@^6e{c`+>!`G^05tq z|B(>3!%2uSIicx-ANwZ|sn`X-jzM2_!S@#)wb=zJXf}HAxjPZ^YUI-KDfq1_{ z;-G=D>Vd}*gM1J?^95S;IS7UZie&)Kiq$MXg0}=7Bk*G&#yW8vBKc?CJPyyohGIJj zm;WaYl|2bZVAI4t3s?IGBVA_UlNb)YuW+$_4#ZdZ4haU1Sb+-=&qG3>fqJ|GkDW`<03^ zBmp9^k$<27aCN;)0jy)G*QfwoP4Z9!RP-1USsp-O-=i}RkV}Sv2_*pB4wIJvj)LGZ zDA^`b03Y!<6eBcH5mEpTR$rkEuwRq^-2%uZ8JuPmmn^`GRi~qfM|@ckV8yD-Qo>XB zP6?RC5?3h$V*k`3zbXU2Fybau0EK@jit98$gQb?%zj+L*$MIkc~mJ zH1UW(XaXNGXpt74iZ5D#Cbo1rjqoVUjDTv4@eyNS{|-QE7z1}P=%g`lVqY7J3Gf&j zU#BU6JDT=PfjMk^3ukdMP#os~HEbkKR)Ew#Nv;*}7h8_^>;PPqj@khKSeFZ&Evfy>zN(xUK)-$nt! z1ej7(zX4VM1XPO9Kn30aWce}vo;-mn^xqB|dICrR;BlyMsVgCP3bKX<>Qp5_&55x# z>Bbc<>T)-5ln?`_e#9ebhW-HPple6FgzD_~cn}6_J_3U=z}S%Aok3;<2@L$toq13w z84OPF4YDBE7J|Xj&t3BAm!SW{A-LDVqBh{wF+@&qSGtg*RMK?FOwq8Ul#k!fhK!%G zPRTs-)EB>$VrSMQs+*j1O&?Arf{j@J8_gYI6y!e?sqUkPo3th&g8&jf+j7#@2 zvgvAjS;((+|H?qNGdu;5~ORPs_N<;)hOR^+kpW-~u zCbANIYH!cFcRpUMU2dLyGJ7>NREhn{k+&@~9zQ$d+xyphXPe_+Qru`=jb}Y?L>!aM zYENDv+`RH_ZThiHo~J(b^stFvD##ox88N3N_0D`Sl`(1x_lg(4WSzZTyeEZmdra#PQ^~4Rvg}?`520Ot+KE=toTC+8RZ4w3ZcZ>AC zGWIcLP0CD{)si5nMF%3-wE~hlnf=oO*)E8~?^L!86NFDL8g;t9u_l~7!DH4S`Y>62 zFoIT^Z8tCWI~~U}L@i&5V{>V6os(n5Uszk+I~fYUPHO5^#?Nfwf=8#~=5%_mv`KVR znA3i+zRp`X%r8pF)CT7l>0WR19t;=cVX`q6i^@oj5U>4wjFoj3hxjs>Q|S(PlD1TO z2??Z&Ka+gX!5tetn@RihjJU|9=8H^kP@!ZmqKI~unU%N}KqY(8k* zs=Pf}mslVn?}oU%>QFsYHySzo%%x4Qd?5Xy!WqKujgYbVMdbmamw<)S`r@PYI=#$k z`&or%-pr)7nDCJRN6rRGDmSVen{2x~;D%M%_d!*D>r(GIqJcm6uX3o}^=i@VPS=@ zc*o?WuYe5}?wrGm<>wrLeQ&Lu$2;y<=K(_O1+%q;2g@u2C=ld<^6_H@kS3mnPDyB> zgjRvFBN%vK3sBsLnYV#+1Q^)wFJwIfSwjQ$_%G0eeRc361#xc_Iiz3__7c^g#e)NA z!5}z>WRVW!`A33epa(}WiQ1%x(0`{m_fZi00}DCH1ma$8sF=Y|*wE)#@TeJB!8I&Q z#t!aZ1xR^zFazVTmmL)S=MY860b+kSB6~Q&{nsNTzy&T*qEGx7uDNo5Mi>l!9=Xc} zvLXJTlm64my^x{$)R*fPZVS&_>0_z*-1~fsLZo$34TkE8J)4`(>!Fn9(cje(|_imEam>EEc1=L=>qZ7IE3AqTGWgOrkboYWs}O zLXUkswg2dGsya@(P|xR%OJg4{_&2_2BBHd-Gu3B$MuJfDXXTQVeMLMWtU(@`_&e(5 zbdLZfvVWlQp#**Gh5keiKj0-z0PTsV@?3KF*t_D`Y2;kg;UBJibC7#Td|{_5Fjprq zk4XO_jh1n1PjCdm8cd)v_fDfkCO_u`#6;!rZ5cr86z$+I(uI>ucgDC+OAwJH@QSgs z^b5X?9~kpOP(NGsG~$S+E{2CTken0`jmxC>8IibUNZTS};A&td&&@@{$I>E`r?v)j zn~0g7nlTh?kY~v;PB0d4k6ACE%USch#k>>9@;gD-TM&8QH5L`ebZ@(vEeICvt`}u? z@m5y5LV)d#?24E8LhM_Ilv&_))LEVO?zt9(>k>>1;nA8@tV#`VWCmQ*BDK}_EjGNM zl<+Eh;t0La?6vYz1$gox&)wmB$oq8_ek3sK59c5Jv{im87PaG}|D- zTPK(Qs}5m7*R5tB*>wD7Oxwx0 zsb{+FlPUi7gtrRMYxvYRv4X_Skt(b}UHc+o{5BF1e=#KzG3s5@mtV_*kS;f%j&A%p z_0#?3Sh=f&%ThbX@)uLBpzC%n9?`W->N?ZT^HL0F8tz3o|4yA{5h>Y2>Ymg3dm@W8 zp8`JlSuH!7H=#o=;S=>#SleeNIsbak>wA7c-GJHc7nQB@lGf4UpChiEV4*PTb_{hO zCwKByM0h+;*ouI4^K*9J7&q=leBiiR#hgdkO%b;EPTiz{S` zi2GOT)wk3XFC*oZvhEPOx-Lj<-Z=HjnA0dhyS3oFMk|VLbLE0>Bzc9Q*wgC%z3uSu zE6I1<%JOFv#7~fPT(7r_jott?KfPstLE@*j(?X0m&f50gG0O2~^RCo*t8Y$T4x6!9 zQ{>hOws<;Oaia4d=!w=xbn?z6FMZD%AhL@*r4S=ml=6lX9`> z`Ob~;Py7XRX^#{*5)zarv;Wv--kWq=i;zG0)qtHd?~c&T<~q+{;}zQ`q*DBqm~Q? z^MqFhIarU1?Y>$pCw#dQNoD_Q<>RZ6t~2gsU6dc zq$^%zJm1|QvKm9EUgaS289s4^OnM9`N1dJ%J&8b&b&pR4+z&cZLmBni5fx3@(F|}~ z#$JW-`h{{y+r*#Vo}sv0`WhbbblB0DTgSK6$t9!5k2615xt@Arv(xztPlj%=VPC^r zhc{6`^*aYez6Jlx1@a{`%3`Ofm*ph8Q%WS2X)CO-vFWSLs|x~l#k>78ZolCo&26C_ zpHyLpB0X)BqZ8fSyH%SL#*8Z8r=E|>{dVR2`=Ui z-gI^pLP&1?4hmG3SA=`3z{?m@Z};bQi}UeM7Z8Ni$;MsHB~NI7IBt}t{cx^N{l+aS zKgL4uFBc_}rRJF%(>8jM%pp-uHF;lC!*QQFYVEACoklvQ7#n@g=l}_L@HOa zP*WN?rEVDp&}j6{sJe{suf$cp_k7DP($sJ*7GY5tS*d!bQgp}4%5hgGmzd@vGt+7o zxzY`zOfzoc%(Y56L6Y9m<7cE7dlsGsTyL#kT4P)+waTX_k@Bqi!#iS`6QB0T<S;%y2ji4F&9zlR z{5lU&tA8q%NjShuSyoE;#sW(brQ8LQ#iyU92+19Jvft{wx)c1yfTy(HZh3%-Y>nss z$6&S8J=Z;HCzzpaqkZk?iZ4&zd`X#aWd zFl#QrD(;B3`!trjj=?MEE>(lxDz_HxVPFh+uQrRg+$A{>Y zV|8EgUScO_43IqTF11J%y(VL%eRXLo#{UppCpN?wVH^gKYGS1^&{$T zm-!#L^Z9Zc(MQal-ide|mi{!ch&O$Yuk7rjV}bRmKGH*bboH3Byxx`kLhOi!d)1tmTjV=trqq1#ma_Nj8T*_UJ?;0GvzJ8|beV|qf%{iN zH4|I{!($1RI((5yFv2DjpWLg=RKY_1%CW1o7Vr2NtW03|h(FE{$a=tT5 zJEzszdS|=vgTyBqSDiU{IESrVW^&Q=tLVbq2_M89b)sv}##H~x;-DnYSjY>Lw$Rhw zs$1Rye4#CC!CFoBIY}*@AbsREdK?bIzPr)!SSV+8C;b5v)Y-t~<)85;NR8Mfm9}t;FI6kJP8jqlVAO z^$H4(BPK=G|MuxM<})^&zE-CEn=zG{Lid-IpxrK;`h)jRZr!ZDy50P9E}Z#|CBd7E zEb;N+?KG_<4b;}_7KDhwb7AT!(YQ;B>a|CzDoOO@)K3ahGyu$o>LE1iYsrSiEmtU0 zTl8;V*-dMs;vRMUNu4N=<(n`xWXh94lk4}=SmF^P^U7~Uj_Qx_KeZ!oTQ_U0>_T$V zn=JWt<<4+9Y)+i-+zU3(MRi#_v$QxTID5%WffiX6>u3v)MF5 zCZ>I{(rRwX-1pN!_4e4u{?b8iHrqt_GPZc@!_nWE5CA{-j9G_7nS@^39PB?erVGL49|N$en4P zT)M@muX$IQGyH3=%S76d-@M0<4_p~HwTg|bKe-k}q0PbNjaF`eosTN1+l)kv z)X}!;@M>zSKc`h)nz!RjIU}w3_PYP3UrS=LE7(TVMLNj8xWRZNfpfCx@;MelU7E0C zZEHQm6BHNDYZE2bhnVN`5rvZ!=q(ckme5ntHJo;`TYkJpAU#@^`-W7y%bu4(GfG0c z>{_{fIP3Fw44Z;c4^NWaxKMCgX5vNu2Mfn+&v+l6qDLMt=&UTNf8~rt^ge&;BN;E! zmXk%6p^5-)8|RqLca(|(4i;2wLuyo@=Ml1V~iAZ&$(dA5rNF z#SECL$9+|yR9bdP-6b1*w=ykzCoZH%m8Zq1>1r00bErc8u>{A&wf6x{c_yCyAK!gH zGokU5`@usk`zuephUGkjfzM=vXrG=kCiNQ#)_ezCLrJW0_Az8#u%Cm*+%0bv&o(IYlvi#FlBmlEEWTJyYfamDsarhir(D^u8djSYpeGZc zV-qTvvMl=ckpcHs@2nbUu5~2i$;ZCIoc6z86s{iJq!;MurBu;%Bp@krSjf5 zM7{pQru4nfyrYw$;i!w&{p^_{gy$?)gG+v@Ub@BB^843ADMJkm=D+=>;_siDla3MfG$ssaU{*)5DXlGbwT(*5^&JB5j?XbT@i>4`=DPJR%*Qu8(clERGKaTw*EWG7d@qj5xPDeG( zNqcI5itOn}QaS`PP1nfq7l}{Ii;sn<6f2)eY=msYviWQF2MEt7l4Ogo18e zT(_ZI(yZA1pl0q8mP+@6)`AawWfa~eJVMVjU^W6@0_V$iM3$-$7OIqGw z6V1-o^&U5G+M=!raN6|Q+Vi{i3(a14m2FqeSG;WCqpo)xQKZA_eJ1QEdq8&UR-c!O zIv;2Cw_jxG4$EurgHx8>vW2|#3Nm_%}r82g>a%nQvPMMnvXJn!BA5-r?sd-aODa~7xV-&CQu zdb9HVg^b@Fc{3iFmoJ@4V>!{O`p+lk)MR%L!8fH3>6`s%c6MSxT#! z_DQWV*`};Ns#nj%cM`)Kkl$cF!<0ThdS$XVW`N4GGq+oV5FZ3Jm$%phyT4QG7*a_f+>UYq4g?#!sKS8LwVQ zI4V2aSAzC}uVd~Yu0P5G=J~&glDm7<%zyh8`kP*SRa>(6y_zn+%UJj^(gx%%kzK>; z*Y8Uyd(QqVTY8NfFB_D0PQV+U?=Az`&z16TkN5e8O}+7cq0GqElNm=89LJm;NArF( za|Z}6YSb0m>%UiB-DMG^J7VN3S^I}(o?7F9emCXIYu?h`b%;^P;?`xCCSqdQ(CM0- z?W8LXgc;>iNgo8|kAF!#9_e{9{D@lYwfbLGQX94%338O%@|O0O)7013`zdD_{9n3L zZ%fy#Bybe7yKK)15%)a-tgik1o60&@LCh@~+Adb}QTlP;i^TPZ_NF#}l zMa(bLSHtNm!BQ_0KZQQ$^$!(C8!pfEh$gpQe$@D|*_%HW;eC^BOn>Tr1!msP52j4UEb8V z{3Q2TwZBjMs}U+y%gR?Cvc22YMevwYrRLszGNR;svm;?8(rZFIf-0x@2j@GvbN!^Y z-07c;|7f4&6v&l)^LM*{*8OA-d(-66v5%SoGIZm)unKivK8XVICX1SiTO zB_|*YF1IPX$w3bzFC&tZq!wdOmk+>iV=3Vk+!`ks93N}vOgNl$wF}Rjuf+-qT=0z2C3=xHySOICl3lJIB!gD zXjsLuBK_yXRh|h1L90-@E{}Sv|JAyWIad?86=!1|gL)pMA7>1XRd_TRa;u}@q%Niv`u$)o^X407wL`rZmTWR zaTSC&hXYtNH$^k!ug`rmx^k=NnjL8f%WQ7A8{^=`=}4_c%>u;9&t2cVwi}7W6BEyU z5TfP-=7@LRfioj|rF^%@s!YR7CDX}x?ti`k=G50PhcA{!zl=xqF>wUHZlqoMl&X1$ zx9e6f!`W0fBl7t^Q^OS6rurefaFgFe=^QLeq% zo!?9!&9!AJ`s#b4h$LnA8gH@7O3y8ZgGRrvUGR3P<4&S*c^5T*`}!lp4jkwqm?(5?Bp(;Yj@L50TNQ9tQ*r4?MpTDk-mOqnNr;2p%aLGEY5CwkqQ>J*3bJu1@0vj!xDbIxi= z&NpY?s0oa{#D>iPaHsAad|^a|8yP8h6+pe z57)ArVk)0|Qq`rj?2R--QD#YMX13QAZpxtgUU+$q6Rp3QxwR>N^s|06l0SpAF2(#D ziE26lb1$d9&h}u3kdZt+>HHq?ftEGo8F}c#0A64wl^Z{7AOTmeQ!ACM`&a}F0{>G zEl>t$gGSD2gSrQiW^GUlgnHeuJZKvM9Vqq#NURR1fkV(4Th;*;alX)qt}ecJG;&WD zRKVFl&27jnT}Thq*@n|>qIY;L9{mpj=z~f)9yIfL{lmU$^bhNyHaNV3J_d(rP*qKrTtoDCXTG=enm&q5=ojSur= z7=tGcdjDpOA1Qj4iV37=p9ifu!vud8y8rAO+6HPJ!zolX#pl7yGR2P+J!=Jx9GInN z21*>%lVgTk3kKwh8AycL$XjT`{jG`aGSfc;kwM)pSPAF`v!XN5f;|>Y@=&>%*e1SmTqSZ3e6lOOUdGl5{{qvJI$x5ZSgl%xqzMn7P{aFb|F0 zVPBqhhi7%z9X{hk?ZMLry(iiq-m%~95BoAW52_xVRdN1sfiOB8<_UH<>}$Z`u%1(n zIA3^`o$Uy1oCB4;;t0|2S2jA?#uso7@m8+<0{(4)Hl%bqTm~*qhjZ8Bgd=0abZBv1 zgh~$T&cYRQ_(lBt0o|9?gGQj9ESwFW^WnM)cgCAV0qMatVj+i|5ASpl7m$^uVF-YE zIr+N#hKUEbyLyZHhMhZ0h-uWqIl2lN!UK>wF5vNlD>I3H5QY5X0^QaJ3Qx%uWCfp% z0?6c1fP?5TUk>`I{5XK58V4BgpK_ula~Irf3It%VSV9<#4#tFOpNB*L7e;v?Y22Wh z2Rs=;2%GRUE(l*YXMg9zVPJ?I@0(gyLrg{lFc>u+@p4oUve^w}I!L??5p(;0#S!}j zIr=+01^Ea654${C_DzL{@IpvtCp0MW*bAe8c^pZgqyJ%TnD?AV?oeRg=K*BYUw{!g z<_=OGR72?jJwLJh-*c{IfDAuxTu@7j_N5Nth-9eW&Vv~STJ93`-dO!5GEL8w;+ zv#8u?bG@vdCM75nKIAYM&jE9q?f=~DZ2{D1H~;2gxIbtP<9#NE;b5IMmKGT}?*MoYzYXfPhd~Qa2My)}gpvv%@`*gic0dF4`mZg~A$uJO1;q?~WXG?` z!l*yclrRMlQ$hc{U|uwYd?EKsNG)GbaNj*9+GO;Dr^qM1AU7t-y}lq9QJ5-}F4+G8 D{CS1< delta 13185 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

~6l+VMiz1*+QKC9`BG!zQQk{nc1HhY(5 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 2 and '__' not in argv[1]: - block = lambda level : eval(argv[1]) + specifiedBlock = parseBlock(argv[1]) + block = lambda level : specifiedBlock else: block = lambda level : RAINBOW[level % len(RAINBOW)] for tet in tetrahedra: diff --git a/python3-scripts/mcpipy/vehicle.py b/python3-scripts/mcpipy/vehicle.py index ecacbb1..a36cc3b 100644 --- a/python3-scripts/mcpipy/vehicle.py +++ b/python3-scripts/mcpipy/vehicle.py @@ -129,16 +129,14 @@ def load(self,filename): result = re.search("=\\s*(.*)",data) if result is None: raise ValueError - self.baseAngle,self.highWater,v = literal_eval(result.group(1).replace("Block","")) - self.baseVehicle = {} - for key,value in list(v.items()): - if isinstance(value,tuple): - if len(value) > 1: - self.baseVehicle[key] = Block(value[0], value[1]) - else: - self.baseVehicle[key] = Block(value[0]) - else: - self.baseVehicle[key] = Block(value) + + # Check to ensure only function called is Block() by getting literal_eval to + # raise an exception when "Block" is removed and the result isn't a literal. + # This SHOULD make the eval call safe, though USE AT YOUR OWN RISK. Ideally, + # one would walk the ast parse tree and use a whitelist. + literal_eval(result.group(1).replace("Block","")) + + self.baseAngle,self.highWater,self.baseVehicle = eval(result.group(1)) self.curLocation = None @@ -301,7 +299,9 @@ def rotateBlock(block,amount): return Block(block.id, (block.data & ~0x03) | (((block.data & 0x03) + amount) & 0x03)) elif block.id == 96 or block.id == 167: # trapdoors - return Block(block.id, (block.data & ~0x03) | (((block.data & 0x03) - amount) & 0x03)) + meta = block.data + return Block(block.id, (meta & ~0x03) | + Vehicle.stairDirectionsClockwise[(Vehicle.stairToClockwise[meta & 0x03] - amount) % 4]) elif block.id in Vehicle.DOORS: meta = block.data if meta & 0x08: