From d156a2e14d6bbb844932aac46c4001d2ec032e7a Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Tue, 29 Nov 2022 16:24:58 -0500 Subject: [PATCH] updated sprites --- cybersyn/changelog.txt | 8 +- .../combinator/combinator-displays.png | Bin 4690 -> 0 bytes .../combinator/cybernetic-displays.png | Bin 0 -> 7404 bytes .../combinator/hr-combinator-displays.png | Bin 15385 -> 0 bytes .../combinator/hr-cybernetic-displays.png | Bin 0 -> 13691 bytes cybersyn/prototypes/entity.lua | 278 +++++++++++++----- 6 files changed, 205 insertions(+), 81 deletions(-) delete mode 100644 cybersyn/graphics/combinator/combinator-displays.png create mode 100644 cybersyn/graphics/combinator/cybernetic-displays.png delete mode 100644 cybersyn/graphics/combinator/hr-combinator-displays.png create mode 100644 cybersyn/graphics/combinator/hr-cybernetic-displays.png diff --git a/cybersyn/changelog.txt b/cybersyn/changelog.txt index 4491ea7..3d342e4 100644 --- a/cybersyn/changelog.txt +++ b/cybersyn/changelog.txt @@ -56,6 +56,12 @@ Date: 2022-11-25 Version: 0.5.1 Date: 2022-11-25 Features: - - Re-added combinator copy-paste + - Re-added combinator copy-paste after fixing major bug - Fixed bugs within train blacklist logic - Fixed a crash +--------------------------------------------------------------------------------------------------- +Version: 1.0.0 +Date: 2022-11-29 + Features: + - Minor bugfix + - Added placeholder sprites diff --git a/cybersyn/graphics/combinator/combinator-displays.png b/cybersyn/graphics/combinator/combinator-displays.png deleted file mode 100644 index ef1db3dfbdcc48ce8c26bdcd6b640cf1aed76d7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4690 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 UjR4i~9RL6T07*qoM6N<$f_!pQ8vp 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 R8z2Y{qGJ{%cBd^6B)Xm&puXD$6*XU+_TUXE3 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 Dy0gd| diff --git a/cybersyn/graphics/combinator/hr-cybernetic-displays.png b/cybersyn/graphics/combinator/hr-cybernetic-displays.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4b5dc82537f0578345f93c9e627ddaa5caeacf GIT binary patch literal 13691 zcmZvCV{j*5uy$lqZe?gVYD?LM?l__A3e5;GK>jBB!+mr2Ss*U)T)FJ(9F`|7S-rpa z`?vl}SoOo#IX~|wq+ZW#<{MIu)y$Ndo{!2w%u!uk-D=|d@$s?M^L1ZJpPpQg?{|S? z#qHl--<<1r--EZ8M}Kcb<)@uG%HKN&C(i=^j{EcKFjz<5-+RWc12jK7b$k8f&fkHv z{MKilzdd`yJ_$aace;?Gxv}b&mGx-p{d`yIGBiKxrrQ-?G;p16ZGE>#Q@%Rx+g?iY z3f_f*Mn9cC?&4Bf^!8qGPDWdg>>S>Dbw})0H)c=IcT|a_2<zFXaP^ zwytJX24X_INLN+E%PQ&6Jf_1#bmDlM>ul9zH$(&u2OvIeDca~s=(Aua39W%+^T0fU z$KqUV&@|0AnyqBIn=FyUAY2+=PRDHX*X2Z6VY#IB%(8z?+=@Y?bA`o7@q9#m03s`T7#+Q=JJv1&L3M)jds5T0 zE}>&gL${@5MbspPG|@@QI2!Ir?d;}`)vb@^S?)eH{Hiar?X7I8M11QTaHLp##hCFv z+WkpvwaRC|!3Q15Kvqg*T=c2CVYJ1U_uS@l(YT@c_}9lqw*~PCgu~?FNb4`w_BI`# z-u#!d4R~BEoYuQ@%IU>R_iC74WTjQgB$yM^YHt=?!{+5-YAG5qTPOI<-_|IK5febL z^sKJQv{z=YC`5JzZ)q;+)rr66wHPEvb=z!CQYx<(;>yaXME_RTWetP$%UbqZ6#Rrw zrWWEZ{cP;=IZG{mjnVvV(|Lw}6VBdcRG{+u6snW$S-Gi@ln!T=VcLF6H7PP)=>9;} zTP}egg4qMLn{AhFsi&g}w-pTMrZJMdt4bsv3+Hqpu=g{=acz@c8jyQXcq5@^Q{(2I z*)ec5553kya=vBDRy3U%aH*)#f>a*eWbYkbe8Tmj`auZ~VRVWM-fBnK(V>kNztr9K zgWRGO8DPiPO`UbZ@|^_rlhgiDvyLG&`tH(I?n zH%?Em0bMV;UVR5E;i$LpZneB0ZCGq4Vm{hQ<6dnb%=9+A{aJHFzp7bq$70~cu||kq z$skez+cGuFL)V;})Du%9aLFAACZzoEX&wrUtMkgUG|tShfLC6cPYz?nscj?mcy-4N zAVXS&rr9dS(WDvr^xMAzx)p6`7<(w3duepTvQc}KX}Jd$ItO-ZfqL-wIs`scaJ<0Z zYLl&*T+*{+bFTM)3|Vos`Lpp)P3Vk~lf0p#*)9@k?wcknvwKDE0VwxQHLc z;}wOl6tRE6=6qkfVewCG#tbBSjh0XaIgKR2y{5rEK4yBvcS&17p@`QML>OHbe=qO8~R_Wsn)1{Vk zbiM$U&w&lrnIB!$=@hM_BRnde>fpLSHm!4ymaB2)rL!jF$t{kFytWI3e+Y_q>mzTWa_f(81r6&+6Y5DsgC(u zLYTP{k3@NEN1zOlQoiP6F6CPNZwKfEFlXXs#xQn4w$6giK)>KD z)rBFuV~dFh&ji>8vEe8FC?T}!``P4z{>!g(lXt@gi;z~VOIgP3yr0u2==74;j^P8} z7SONQUz=dtJ;Z^lrvlLrmIRiH=P&ObuVn;?Ve7Drn2sTF#bb3MqVGa0m!2129VQWY z3arGIt_3=ljb5VpK82xu6U)p5o~bgzRtM<>hXlMmH|kl|PMUdTVPwYpXKhmiIp zZ>2`?-b26X-v^lHm{VW3t#}nOmz(Dog6CfcYa7?{a2L8NIL$q2S;OD95Z)Ojh-ad? zlECuZ=F4D!E!3a3aFc`daTv?A2NEE6v`rOs(E-n3&0V5+D#V|{_blCt;$6X%S)J&Q zB`Fiy9IIASMFOd;Ph9j6t#ub>PdlFYZ^WscJ>m-*WH`|o>a74oM zM~Qe(g^M8W9T^~rOjEfoC1at;-_LM0G;!1X0Rcus!AsJOwU)Q;euqG>v}7NCbGf@mQx+(L-a7cVsxJY)ZG2(pfY zgF+63m_&%=5Ja~OlU$(Bcp+$E9oH&|s z$aGecoR=1i;3W1yM|?}bV+xGR^mvOf;b>nmJgPq@7-(eyqX~O2bONGXcF-A$yod;< zFcqnv*c$p#iIAf^e@5cPYBg$`Mn*|V>f#1y`&R;a4r`j64}w zZ(f?kw3fw+uAn)4IzqMg2i*{a7a0ee8}#U1XVLHZLNoSV^t}MQz1iS9;Ti_IP~Xra zLIS#1TF_zzPO-sakpXmlB#9KYNjKsc2KwvUewZkGhgP!SmjiSm7bs&a~&vf&Bz|@{Xapc5_nJrWOA`aM5E~YF7bwk zasJYoHNx)7+kq4vznVBRy?mmFh@uhTk8VhgLl(lPlA+)DUZVX`pDPPwop#9r0%=Zz zrBb>Rg-K~dyf$HCl$RIarSuMbLQhg{$(W$>?P*+zBoVJDFoC|Z1bH8}9f)Z}qNaG^ z(7i38VWWPD#sw1tUtcS>3)>0O2t`vFNK>6iJKUv#EQE&=f@AtOBQTAYnv?}_d)z;u z@NVzZA&jZJj)_IN0L)M7ZfL<-id@*Y&drNJ#&$!x4@7835c`JdGWde9ccE3i2GqH> zj}(dzN;%3`1^mzkX+;}E%K3*K8|15BEkS%w9Gk6SPuUwgWe{sTEAW>1+#A5`LfRM$9Bl}zYp0~wr6H8^1 z&IbkdrWZu#bqpE}Kz<&=-EX07nEtm6V;Pp{8#b`9=0tF+0;^sQ1Kj#pEi0(Ny8H?+W^sEL^ zUkpTp01cWF=ySICDF+qIn!p%5rylZeM!X0E&M<{btek-U=++^ET77>NFjJ!diY(id{EFO1B&6}BhD%S zWsUqai;M}LvJKEgJR;sGGgFsH8qjBP1OxNhC}}$)x;%w=ta9fZgVpa+>?a>91Hk;7 zx@Ky@W8FQo!+5?=1i`UHD_TS|+HNY0kU=O`Y|BmW-q$&m>o z2NX9SvO%tK&wFSil1=Sl3s$Kxk>HB}-TyQwm_pN3M_;}}T3UVx2ZUgH^PpY69A9Lo zaLb0(WMGZ(tN4=qjbUamJ;guK#@sa|wQh|;Z~@6mFcP6qrq^IN@;uY|sQX2TM2dP) zbj<~Cj>#YPE5ye=lrMmF&U5T(noAI_WZ@Vguw=tFn~Gr57cYew<2U6DbTL@hDE*_i!kIBr?<^e_O(z z>3c7+{n<1*;!oJJ;YqNIOxF{k3SN$ zllhzAWv>6Th?S0y_w(NBZO8WIa~XLW64!lw;th}LSKmpB@_iI5eZ9lTI4DSWXdIA; z7MAB4GCf$m+NUGIa55*9Y8NmGsIY^AEgD(QJQ1ni%Rl?@mtZw1JoVw_)~wSHZib&G}nov|JpWdW5K%5u3Q=FChK9nn~l6cZI z+Wb@+qF{8gXY<|pzeAkoF>la%zzz?{n3|Gg4gs06ORoUJw2VQe{4=7GNW6C{$b1Y^ z)?PT$VFZa$0}2pFViU*qe-YBpyFSJ!H{mP9Cv#k_#FD>9p-l=7l)SNmT?Ag1;o1xJ zXGi;!;mfVEt3yHD9V}sN3okHbK%{$K#KF9RNh$f&p^P26>Ol~yLySSu>{nb`VH1d` za5b?FfkYz+J(D^`wzu=2^!-hY5o{b#b4kXMA+W=d9TBoYZeo}47-QQZJ#!asJCQb& zKe|X`wf)Cmr1J+co}J)wWP}lzW=E6_D4jtX0j}<|(AF^mp|h0q<@gVx?bQLZ1BcZF z&fzdah!lU8!ArE|K%2>8F9#A1&@i>b9&izRgm8rXg*hPC9aZKyZar|N*JcHWmx3j- z64E&3#NIqi;p>(y3I1RaRV?*K%aK5_!{bvDZ2g)UJo_VLnC8ml9Eo^p-*QWwE8p3p zak3UO8J6woz6F}-1GiR-$^imTg2xIMoJlN6rS8nxAF6l@Ofq5G--34uQgdft4u=CZ zRos|A)awQ8AWxZ6(K#bKtgGM5&f_9vs?-ClWQ0y~a}fQk=Ogod74-cLiBcxL;0Nl3 zE#;};!ubjW1RP=^EG#b}Ed2l2r5{cy+b4lnd{6*ySWl^>5M7YAoXWUd7DEJpR}u-R zm;Vb>!h=wUP(6YNbYPdWwtf2;}CW!O_?oT7{FQ+M(Q>TNzsFe1Z~tsz}x^40|rQSVxar|PkTU#u;W z8G9Ew;yB$_eF%4mH7j+-BagHHE>Xx^mdADuJc6);q3dJh_i=qcE2t<7pBx?$hLa2( z2lFH@%`KaQyuz;uOhpFT>^9D-VV0_$q`tYlc~uncvft5AsYn1g660hA0b~rJX3OIA z@I~MD5Wlh8(J}I*Dj?BV@Z@|U$B$jVn=UO@?q8=AuY&^bQ8s?jAiX;IstuRdMjN#` zK-*@!l2$KLD*8`J50b*L1i-u-{lhN8NzeY1`1-pNX>j8S-E1M&81DQcptRIA-l$gkm{5f8Q zyZn9xw7s~76A%ys>3;**y@cQO=O(1HgbV=k2o@h5orW=@@D~se5s-w4ptAel%WRMM z;%A+_yyvU7>-TgowXVCjc)4+wks%cQ`hhjsR~RHzR1~maH0necw8F-}U_vTTDQL`P zIqg)H^#g!v+2Lv6Yt5inwgxSF@)j$v>LJkH>XerxiYD z_wT-5N0)8y8o;|Rw+Dutc)i1o(MFkgieNWe`Z&AHDrn?4H{P?kZ-rEzV??CyV=qY& zsAG*6w7aBGy=0LA=bibxuz|Y=`%;Bi`7pgWW2L#$s#hJyxzJu7E85_Br!u>ILA`=V zV4J~EfkfIDR#>CWbGkdHZ2o5RZZt3ULC4&v492V zt`OqUGZY!7jSXKjgc?3NH}t+^y{>znBg!Vx!2{x3XJdk0gosl_=tg8)VhgEukgr_c z`OrD^==!c=v7b%pAAFv-%Cs-EYQ~Fhb$7HwEqk!rYr}99)yIz4{+{E)R2(*0%-CE# z#|#%LTe_eD$g$)0Absaf;T6y_gxEuvTR*%joTr`GqZ{(IciErX|MIDA9vmUq3uj95 zV3a6YH>xdyCf$H->z&EynXS9C-YqVjP0B6Q5rM0BUp0YbQ^-ab85@V1}+`}mO7#e%G<9& z%)Td|8h5YIDPk(JIg1{bTOKSKcK5qxDBdSU1jI6CM(03kUY^?6`Yg-|w-zp)OIkXf z>%gzliMoE_CV7+@;R%sq7R_8lw)s{tnU#%NRz$Qk4fP{yjnvmG0`cObqz@3nou9<5 z2MJQcC-9=2tudFKn22vgZSz+PlW=1uC~#rIGuGLZ1X&KCTu9dXVS{6hkwi-#mo{8} zU*Bxe4b!$JBhzFg4`ISwJ-oJDqJB(&IuY7@{Wl2Ve!IB#*;Os>9jY z;*_?`%KW@FRM<1k;c~K_gO-D9N49RTq6s(n>Bve0e#WL!#06fVK4BQAq&uAI2x*w2 z&^&(nrP^-l$V%@Z8?uODT{%t2HMkHBIT)fNtxKyhPIb-vD{(Hr8wxpIWj=BFC7_5Q4oMt+C>}k5vpr$fobk_@QEL zaQ}qK=H&Z!_2!AUQUsb9Le2g=!LnzLGRy4Q1j=Ly^tDIV;E`)U7=e!IaRd8$eBhRz zL04kQye)~upI@`Ti_cCHOxRnC@GP4Xih0fv@sB<%QWU!BhEwV$ z(Sb#XcgOy+B$6#!x}82jqBUBS=E`+#6>MB9O&zDJV~iLFT4G}yUr&08mZJo|tK2je! zs<(#F$%&_w9^QMPL@>7zG=>MO6wZUCni&3OKQ+#-|Dx--d-a~y(3@R zzYVO_(elXEAeiXGdYSXNPf#BVsVe^%^OW*qk&MHXnixgHNiP;IpAtt9K>!OIbw57? z4KiWF!Q<2*G$Q>(9;_^i%1UNMGS8sB3qa(tPWK24eO52?Q1hF)CYn(p5||M}9o*>? zI)rdmIp5J-BVhLt$pw4#RzW37x-!fHq8OE;)@tt3CHxGy5F3Sh=;RnGK$xQ$ zyXC?ZMp>d8{Vw#GTV=EG)F?rFNc?NZ6F>>}U{*_I$&-!U&Ed6SC(fP8Fdng6o?w7f z^EPfeMvRWfF#{-Xt{etF5XO#wNF!_cWe*ZVM%C4HEO>CxAbJ0WQC_uU=j{bZ2!s>K zgbL<{&FsnWhH>D<$s2zja-6K3f!sE-KPdt5-8KxeX|i1V^bH7&96f(O8*t$=>Eahy z5a_*+5PzK_W^`ZjLKHbBBlE4-G=}9elw31brRr25k|`+=CHZvCghVQ zgR}FS4G#zXz9$V+*UG#ZyvF6XxtgA6Im((m{QZya{~mp1JvTqgV^K%Y_l5ohp{gIlTM8)nOfK$RJa;dc65c z|Hm_2nMJf`T{IC*C{sv%wftA6d8e%ODijEnnpJqCG#A0JL)lWBTgDr3hceu#i$gRs zq#r1EEPyXq4zB!;PW{>LJYnHI)_?P~4x>$aayxOw1O?|FTC^I@N{D>x@+8OJgziov4leu(|- zz4qyviP(X;J)IRS(KT`qq{wOi>s`hb^VXirG9%cV_yYwvX>FvJN;Jrmp}{n?D1{ISEGv^q zn6@cWLV=*E4BzwqzzSs*02&yCaFA)<2q}y>NTZ=mS~A zUgpV;Y3$YKC@j<%-D{pqiv1RqQsI;5$#BE)zpat`TyPNhL{lrV{;Fq8SkB?1Dme7O z)M_J45apGkcDqeITEkc|bB|U|LAxxr=Zdy2S^x(;h#(9k11B+}hv*ItO3Wjxb&L|B zy?t+^27hy7_8sri86m!WR(XYLSf9ZQWsx`GAkCtn<4Lf9e%ls_I(`8agef;R67LwN zR{AJq$C0hgio$c?PFJH%(Jo;MYEp5K()E4F9iH6?R+_;ExhgFa7VLt`cWvzS9v!VQ zQc0E&?ND(}X%?Ij2OY^*yh5r(Nf8I0xDZ1GVyH1PqvR@?R7r5{Q3{;pQ$#q7$lrL} zp_OA$3l}>sHn<@6yoB_{y4AF_EU?2ojdV%UrY{$1gV}slq>~ges<9E|j)%AkJhP?C zleb@l$a9Y%k&Oc*vH?kY%@UNtoV5e4+eri?;Pj^zo8^UwUQz%;jkg?Q^gyX-LC={;rN&ZzM_5tSQvF0m?knv2C!{ z56sXrV`Fw7mU8^qu3s%&x`|V;!a-p7KDwtF{{bKZDwd5dR5vznaUzJ&MHiKgJ<>R~ zYj4!_mR`?R>04bVs~KjmAnmSk9w2-$FtuSa&`1y7Hf8ICX?`8>-K|CAu9$6#$+c2r zh_C?;##v#`aaB}P$^K-<8fYe0nW(0cD>gv=n^1DHQ!R~+s-$}G)bad87#9g0HVi#& zjyh<^^YRFE=LsTPZhwDQ{+b{EdtV;P6q8i<)~Tg=J1 zk8zyrQb8HVUUi@snV>@#5jy3GTo9c=)X;LYXnkr=^0~T56!yQ@;x3OIx?4bLFb~%3 zk>x})bn$=&B$Th>4jC~^zVh_)m#kYS%$kmwG;y|$k1?rJp^up?KD_&AZ%|}SD~_3z zb7Zcy3bUaA?_eT$qeb6qnJ5DcO*|sZjYm|LkxKSa8tLZE+2oh8gh@xsFBEi662=cb zZn89_H-?(w8Y@6fl{0U6Q^ig zYaKUdJ1|XbvYN-;->#NI0A_D>o%@M}2MthlTr2yZ*K-};=Th0+^a)xuiIXO;XPA!C zJ=8h2QN|>~46Nr?+Ua&zr?VWz5_G)i&rx2Rx=|vAt!l5)!-&1>h1&G;7N+IOokNEC zR34gJa51V$6CzTaWf8i91!V3Vag9a|ikby=v3T3MpqzLgImWhbb`Fd6@gvGEM6Qe=_FUH+ zo2R26AMVE~$A_Xf%%9WWfE&i5x$&Ot@$fkc_dI|FnfAvt!6y?fT%;=>F&a@wFjh{q zM=lXV+ZU;y;O(<636$*q%PE8vp5I%$K-t}%-gV!wT`H zWfGhfg%%`YnT_xGIRcK9@EHb|r}km(%%ZjnC)5a@Mg5qtZ&S%3OXLNNm&HD9Kq_Uh zOPtnN2{jYVAyq=1$hr%Cqi{2%RKb>(Gu5 zX=Lp$bsd_!Ue5|`Tz^OKViWH_`uSh=J=}tO4C-Tpj zc|&t~k}L(a+J-cOeF^t<_u}&7Ttm&}rJCxQ%-$a#hsjop)~>P25ofO9R-3(XUDv(uwj(TlPfdBB z%Tf0=zd}x(zim#pEHO3a>vO1EUGnSh5qWmb?dc~=ov_=M@kt_^UR%3JGjp)r4F4`= z=|nd~oxgIxz#$DA^DuZQshvDSCKg&4iYpCQaHGEm1t7(Zim0dzj}IZyPvV>2XUK&OHuP~i z><>L~kKn@xyFa{+_KeH!@xM8({8DkY^YV{qo>PZ?1dN8@fug!o{5r}ez)B=;^_vwIyJ zgU3V2r_DU;b_MPI@p3ztzw>Qq;&mXCq8XFGd{l_OX};G<5J}UdKGvX8L3+Y$c>PT@ zdF_F_6H5v8UA9B?F!uSg@pVDcne*SAK7@`%N;{YyCo-m%)^!~`{!pOXUi=<1?_6mG zE9T%cf>!`s4bnUr9Ru*|6&$KaNg9G4bMV=Ai|B^aTfNzPJfA0S$cRxwuZOOh z@$^f_5Y3`#cb<`Fp4Liuu1{biqp6|B^%Lx9NAe3TObg1S?3m!w?=i1iVdS$*hOB=u zK?6uP6-zkQ*B4ADkGG{t>}_r@=Zt#OX&OSa9$LRhp=8K?%EFN(I~I&{>bEOjvN>Aadnwn)|LL z6bNsi^Y=UsPF`YPKkL8Ftv^2M^(E-(-G3a!UX(005 z7;6|jo46r){d<<*ce1rONlun<3K!5>n6l6UB0Yb!4M&z}$tcKrT0($Gj$#!bek%-(jMF7I!a zn~P@9=UjV)-x)qvW?u;3MSTG2B+fpQD~$n$%+fi6=mJYsbk4mvPLzwT>Ka5{u zjaihpl%&!dfFyDQzAMaeA-(3nFr%{~=$`F(Z3ckcQaw+IHjAvTN(DIZA1mF6uMN`X z8X1}z;JYn5;xceJ;|zR30Zvcc(>_1{T*i5urG_$s4(ZHo`)HdCwYECOz0y+&VmiH^ zWUu$Cc|WsAcBXQ5f;-cU^janivCv_GpmEwuwEE(OMJ~hO*f=s)35BTIR&OLIALNL~h1e_QuW_FwT=vjh`#che+q`Eb{gl?$6 z{8^p*eqv>{wROm|I-|?NXd}=N?mn;;z4qhCMcpGO{IbK!`=I+%bwzg6Ud{7D9!i`+ zglyD-ma%>`5Sfx6zY+~y3E?>Kf6yRJJazEN9=3~yJqe+w&t!Lp=7PsH)5V5RAxGyzMwe{Sa zvU$u0xP{HjzaKlumMVj?n)m^Vq{tM$qc$S<7BqWIZySEeYkqxcyZ3&A9qRzP!)I&b zYyTL$QHQd%qT?_h-dQ)k{gA44r!4ODQUFhJK^R-BtLuP^JUKA*TFuf^jor26dDn_L z(W}x8k7WzQmMo?U(5%Dy-)#dnJYtCjVA}Q|e!M%8zS$)vaX9IRej}+!V()9jg5iDf z!XevPq8o2Ct7r=vYdDBtO4K3AjDUZNeU~xfVtNpT;x!z_+zs;R9;T$%D_Ajb#u~o5 zYpeG>V*CY+YaNM&Q`L4ll*sT0(mIkMc!flXl0)`9-~NyIW!ha+Zv+{17-n|v<&n*H zKkUnL%`W2y_^B8{e@rR0^SOxLog#+sM^AfH6k6X0)P9&>(vopFH+EA#G?d>PG7BO> z$wfPzOV!QfcgUafxCYuPI)d+6PPs4MO0(^qsyy?pavx|1_yl4HIqZvGZx` zT6+>a?~0)c4}Ro5_i78IihN&rK0*)zIz9YVeGTf$u*FczEQI}Rk;5fs^hh;)?T0D0 z@6bvPeeR_z@qtLTP%CD{Daz@UTTfGz!!OmbF5G=ikJd=TtMV_qlB9PZVWEtm$V%q4 z1((&9&xicSY`%m@p{%V_ekv^gN`|Ync4BzXyX?`=H@NhD^y&k1s?-POCu?>yVyYv7 zCl`{}-VUt0ode+N-(s4mA_dNC-BA3j(ic|wqWDkdtlh>XfL~?N-@U^GONTA#L~TDM zAjWwH`rd)o?fAqE&Lz%r2%elJ*>Fsb_-5}5)y)B^za8fSdov$j2T@e}IzqmX2GekV6&*yyK`BcdQ7Q0;7Mnyix>=fTf zb2?9n2s=Vr^u7SWq+(d#hg}KZgLU<-x13M)ahK8xWEOmvn3FFAN80OiZLX!{1X%Yfv*S3G*= zAxWNr8odv;UYa=+Kq>|%XJcpg=%u}S;PRzXG=X=Zx>`ObL4*26zD1Uos{NgZ!4ELe z-uf3Wg1|2f`(~jra1`8s&v?f2u6m=<>Q;5gLd`M`mi3Q@dztI@DNUU33CT<@r$~b? zp9&=*e8#lnr-G2}AdJJELwu{5@-pg+*)d;gAPvQcHeQ0lX4!Ha^W&6G_Jo}qm+Y~4 zyq>)rI7ZUa(vzl4cnWqc4c54e4ySQ&Kk0NWcL_h8l9UfMDHOJ-^> z{!3q=XS*LC;pEvMMSlCItponQUV!(9E}g%Z46!zgr_L6wT+Ny~Q@UxYKXHjYEB%w9 z#WP5=hVNjaF>l=D>r8WIgNHF&+a9K<)Zz=*isiMJms_npGKZF+-YMkga;?c}y~!yg zz7)o5g~My5jVS{w(4@nZJ@3_+6Yo6*l~PvSYx8)MJ&#tMF)*Yz{$MmtuN&M!0FcJ` z@ws~d>C`jI@ZDSG^Es^lA2g(Y@b16w&aW*v7Gs+AE;!CG>z%uwV%0nGILcsr;JFXU zHOqY!nq~d}=3see|F1br&s>kA|2_BLLLWwx-;gP6c<9;LTYvv+s*nK4iqs0}2mTMw CvWR*B literal 0 HcmV?d00001 diff --git a/cybersyn/prototypes/entity.lua b/cybersyn/prototypes/entity.lua index 172a2df..28e46d0 100644 --- a/cybersyn/prototypes/entity.lua +++ b/cybersyn/prototypes/entity.lua @@ -12,89 +12,207 @@ combinator_entity.radius_visualisation_specification = { distance = 1.5, } combinator_entity.active_energy_usage = "10KW" ---combinator_entity.allow_copy_paste = false +local COMBINATOR_SPRITE = "__cybersyn__/graphics/combinator/cybernetic-combinator.png" +local COMBINATOR_HR_SPRITE = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator.png" +local COMBINATOR_SHADOW = "__cybersyn__/graphics/combinator/cybernetic-combinator-shadow.png" +local COMBINATOR_HR_SHADOW = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator-shadow.png" +combinator_entity.sprites = { + north = {layers = { + { + filename=COMBINATOR_SPRITE, + priority="high", + x=0, y=0, + width=74, height=64, + frame_count=1, + shift={ 0.03125, 0.25, }, + scale=1, + hr_version={ + filename=COMBINATOR_HR_SPRITE, + priority="high", + x=0, y=0, + width=144, height=124, + frame_count=1, + shift={ 0.015625, 0.234375, }, + scale=0.5, + }, + }, + { + filename=COMBINATOR_SHADOW, + priority="high", + x=0, y=0, + width=76, height=78, + frame_count=1, + shift={ 0.4375, 0.75, }, + draw_as_shadow=true, + scale=1, + hr_version={ + filename=COMBINATOR_HR_SHADOW, + priority="high", + x=0, y=0, + width=148, height=156, + frame_count=1, + shift={ 0.421875, 0.765625, }, + draw_as_shadow=true, + scale=0.5, + }, + } + }}, + east = {layers={ + { + filename=COMBINATOR_SPRITE, + priority="high", + x=74, y=0, + width=74, height=64, + frame_count=1, + shift={ 0.03125, 0.25, }, + scale=1, + hr_version={ + filename=COMBINATOR_HR_SPRITE, + priority="high", + x=144, y=0, + width=144, height=124, + frame_count=1, + shift={ 0.015625, 0.234375, }, + scale=0.5, + }, + }, + { + filename=COMBINATOR_SHADOW, + priority="high", + x=76, y=0, + width=76, height=78, + frame_count=1, + shift={ 0.4375, 0.75, }, + draw_as_shadow=true, + scale=1, + hr_version={ + filename=COMBINATOR_HR_SHADOW, + priority="high", + x=148, y=0, + width=148, height=156, + frame_count=1, + shift={ 0.421875, 0.765625, }, + draw_as_shadow=true, + scale=0.5, + }, + }, + }}, + south = {layers={ + { + filename=COMBINATOR_SPRITE, + priority="high", + x=148, y=0, + width=74, height=64, + frame_count=1, + shift={ 0.03125, 0.25, }, + scale=1, + hr_version={ + filename=COMBINATOR_HR_SPRITE, + priority="high", + x=288, y=0, + width=144, height=124, + frame_count=1, + shift={ 0.015625, 0.234375, }, + scale=0.5, + }, + }, + { + filename=COMBINATOR_SHADOW, + priority="high", + x=152, y=0, + width=76, height=78, + frame_count=1, + shift={ 0.4375, 0.75, }, + draw_as_shadow=true, + scale=1, + hr_version={ + filename=COMBINATOR_HR_SHADOW, + priority="high", + x=296, y=0, + width=148, height=156, + frame_count=1, + shift={ 0.421875, 0.765625, }, + draw_as_shadow=true, + scale=0.5, + }, + } + }}, + west = {layers={ + { + filename=COMBINATOR_SPRITE, + priority="high", + x=222, y=0, + width=74, height=64, + frame_count=1, + shift={ 0.03125, 0.25, }, + scale=1, + hr_version={ + filename=COMBINATOR_HR_SPRITE, + priority="high", + x=432, y=0, + width=144, height=124, + frame_count=1, + shift={ 0.015625, 0.234375, }, + scale=0.5, + }, + }, + { + filename=COMBINATOR_SHADOW, + priority="high", + x=228, y=0, + width=76, height=78, + frame_count=1, + shift={ 0.4375, 0.75, }, + draw_as_shadow=true, + scale=1, + hr_version={ + filename=COMBINATOR_HR_SHADOW, + priority="high", + x=444, y=0, + width=148, height=156, + frame_count=1, + shift={ 0.421875, 0.765625, }, + draw_as_shadow=true, + scale=0.5, + }, + } + }}, +} -local comb = combinator_entity ---local display_base = { --- filename = "__cybersyn__/graphics/combinator/combinator-displays.png", --- width = 15, --- height = 11, --- hr_version = { --- filename = "__cybersyn__/graphics/combinator/hr-combinator-displays.png", --- width = 30, --- height = 21, --- } ---} - ---local north = table.deepcopy(display_base) ---north.scale = comb.and_symbol_sprites.north.scale ---north.shift = comb.and_symbol_sprites.north.shift ---north.hr_version.scale = comb.and_symbol_sprites.north.hr_version.scale ---north.hr_version.shift = comb.and_symbol_sprites.north.hr_version.shift ---local east = table.deepcopy(display_base) ---east.scale = comb.and_symbol_sprites.east.scale ---east.shift = comb.and_symbol_sprites.east.shift ---east.hr_version.scale = comb.and_symbol_sprites.east.hr_version.scale ---east.hr_version.shift = comb.and_symbol_sprites.east.hr_version.shift ---local south = table.deepcopy(display_base) ---south.scale = comb.and_symbol_sprites.south.scale ---south.shift = comb.and_symbol_sprites.south.shift ---south.hr_version.scale = comb.and_symbol_sprites.south.hr_version.scale ---south.hr_version.shift = comb.and_symbol_sprites.south.hr_version.shift ---local west = table.deepcopy(display_base) ---west.scale = comb.and_symbol_sprites.west.scale ---west.shift = comb.and_symbol_sprites.west.shift ---west.hr_version.scale = comb.and_symbol_sprites.west.hr_version.scale ---west.hr_version.shift = comb.and_symbol_sprites.west.hr_version.shift - ---local display = { --- north = north, --- east = east, --- south = south, --- west = west ---} ---comb.and_symbol_sprites = table.deepcopy(display) ---comb.divide_symbol_sprites = table.deepcopy(display) ---comb.left_shift_symbol_sprites = table.deepcopy(display) ---comb.minus_symbol_sprites = table.deepcopy(display) ---comb.modulo_symbol_sprites = table.deepcopy(display) ---comb.multiply_symbol_sprites = table.deepcopy(display) ---comb.or_symbol_sprites = table.deepcopy(display) ---comb.plus_symbol_sprites = table.deepcopy(display) ---comb.power_symbol_sprites = table.deepcopy(display) ---comb.right_shift_symbol_sprites = table.deepcopy(display) ---comb.xor_symbol_sprites = table.deepcopy(display) - - ---local sprite_base = { --- filename = "__cybersyn__/graphics/combinator/cybernetic-combinator.png", --- hr_version = { --- filename = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator-shadow.png", --- } ---} - ---comb.sprites.north.layers[1].filename = "__cybersyn__/graphics/combinator/cybernetic-combinator.png" ---comb.sprites.north.layers[1].hr_version.filename = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator-shadow.png" ---comb.sprites.north.layers[2].filename = "__cybersyn__/graphics/combinator/cybernetic-combinator.png" ---comb.sprites.north.layers[2].hr_version.filename = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator-shadow.png" - ---comb.sprites.east.layers[1].filename = "__cybersyn__/graphics/combinator/cybernetic-combinator.png" ---comb.sprites.east.layers[1].hr_version.filename = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator-shadow.png" ---comb.sprites.east.layers[2].filename = "__cybersyn__/graphics/combinator/cybernetic-combinator.png" ---comb.sprites.east.layers[2].hr_version.filename = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator-shadow.png" - ---comb.sprites.south.layers[1].filename = "__cybersyn__/graphics/combinator/cybernetic-combinator.png" ---comb.sprites.south.layers[1].hr_version.filename = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator-shadow.png" ---comb.sprites.south.layers[2].filename = "__cybersyn__/graphics/combinator/cybernetic-combinator.png" ---comb.sprites.south.layers[2].hr_version.filename = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator-shadow.png" - ---comb.sprites.west.layers[1].filename = "__cybersyn__/graphics/combinator/cybernetic-combinator.png" ---comb.sprites.west.layers[1].hr_version.filename = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator-shadow.png" ---comb.sprites.west.layers[2].filename = "__cybersyn__/graphics/combinator/cybernetic-combinator.png" ---comb.sprites.west.layers[2].hr_version.filename = "__cybersyn__/graphics/combinator/hr-cybernetic-combinator-shadow.png" - +local function create_combinator_display_direction(x, y, shift) + return { + filename="__cybersyn__/graphics/combinator/cybernetic-displays.png", + x=x, y=y, + width=15, height=11, + shift=shift, + draw_as_glow=true, + hr_version={ + scale=0.5, + filename="__cybersyn__/graphics/combinator/hr-cybernetic-displays.png", + x=2*x, y=2*y, + width=30, height=22, + shift=shift, + draw_as_glow=true, + }, + } +end +local function create_combinator_display(x, y, shiftv, shifth) + return { + north=create_combinator_display_direction(x, y, shiftv), + east=create_combinator_display_direction(x, y, shifth), + south=create_combinator_display_direction(x, y, shiftv), + west=create_combinator_display_direction(x, y, shifth), + } +end +combinator_entity.plus_symbol_sprites = create_combinator_display(15, 0, { 0, -0.140625, }, { 0, -0.328125, }) +combinator_entity.minus_symbol_sprites = create_combinator_display(30, 0, { 0, -0.140625, }, { 0, -0.328125, }) +combinator_entity.divide_symbol_sprites = create_combinator_display(60, 0, { 0, -0.140625, }, { 0, -0.328125, }) +combinator_entity.modulo_symbol_sprites = create_combinator_display(75, 0, { 0, -0.140625, }, { 0, -0.328125, }) +combinator_entity.power_symbol_sprites = create_combinator_display(0, 11, { 0, -0.140625, }, { 0, -0.328125, }) +combinator_entity.left_shift_symbol_sprites = create_combinator_display(15, 11, { 0, -0.140625, }, { 0, -0.328125, }) +combinator_entity.multiply_symbol_sprites = combinator_entity.divide_symbol_sprites combinator_out_entity = flib.copy_prototype(data.raw["constant-combinator"]["constant-combinator"], COMBINATOR_OUT_NAME)