From 189823e8bfd1c4bad0bbf7c7f860fdd1546c666f Mon Sep 17 00:00:00 2001 From: henry Date: Sat, 16 May 2026 15:58:45 +0100 Subject: [PATCH] Setup for dynamic elevator floor buttons Add a button scene, as well as a button scene. Each button has an Area3D to detect collisons; a two-row sprite sheet contains all of the numbers and their on/off state. --- images/button_numbers_off.png | Bin 0 -> 2410 bytes images/button_numbers_off.png.import | 41 +++++++++++++++ images/button_numbers_on.png | Bin 0 -> 2451 bytes images/button_numbers_on.png.import | 40 ++++++++++++++ images/elevator_numbers.png | Bin 0 -> 4506 bytes images/elevator_numbers.png.import | 40 ++++++++++++++ scenes/button_panel.tscn | 75 +++++++++++++++++++++++++++ scenes/floor_button.tscn | 19 +++++++ scenes/world.tscn | 4 ++ 9 files changed, 219 insertions(+) create mode 100644 images/button_numbers_off.png create mode 100644 images/button_numbers_off.png.import create mode 100644 images/button_numbers_on.png create mode 100644 images/button_numbers_on.png.import create mode 100644 images/elevator_numbers.png create mode 100644 images/elevator_numbers.png.import create mode 100644 scenes/button_panel.tscn create mode 100644 scenes/floor_button.tscn diff --git a/images/button_numbers_off.png b/images/button_numbers_off.png new file mode 100644 index 0000000000000000000000000000000000000000..0e5b1e6de52d9990f6ef927792e835f26aef486e GIT binary patch literal 2410 zcmd^BYfuwc6kbb1B&e}GRD2NI5ds!%HMJIJ6O2NU0tpzR;!x2k5-L@!R80awnzjU_ zLsU?Q*Ajstx`;Rhv?vb+tAN2IC_ds7i`fJP0~??LVSAG>(_fv=wEgGzBlp~MzVn^4 zH=BEs6~PIfNtsW9AZTXDhQN&wL{b3z$aDwr*$%@duuMzd7`zTTcWa>$Y_3FvMFoMC z4?!pd5jKm@hfqF5*j#)RLQ#mY#rOn-5)fe{@gWca4zOB*^7(`<4Ol43Cv5q^g%W(i zCIlpb5)c4+fDTw72zE=>AmG~oV;@S849 z2OO68s8*ZO;<{%zs+k&j46FE1+)qj>mxi!lNf)df_0d|$+_~1BaI9Cvc^y)U%V}`9 zaLi=xF}fQ38_8K|>x6yQUF&VS7Ozq80-NW-JEsUn3t!_=>MT`K?2;>)C#9U(6W%5_ zD_^GMp2iNc<#Q#Fa6o1+dj^q9J(rE)Vov}hbkfbdMT^}O2?3T{{0v7+KdRRE0Mz$} zvgNK4$qFif+AG#soM-5(gRM9j<8Gd(9S*f8)h{=^S6aAv$OI6xkEeNOTcX_Z~g z-?ZOVI-1W5EDphVUgd8sClD|BB1@A>a0I&*iiTG*DP#AMeRW$R)=oI+83$N}!hwcz zU9GN6A@BFyoJ}I#3E0m13aiQbU+D~<=EV-?9*ZAsp{5lHraf~ScJnV#hUp~zw;9Yt zea@y7H}g4`VnTd)VJFYKziGsnkE}`#2JMPB(==(!pd7t#?t$2GbC|lIzO37m)L2PP zXhuE&4;gZ~S|Y9xbUxDVl1ra-lWSwSN6SPV<&W>Nn73=<2NLRn*{}N?bk)i>Exfa9 zAh857Ml%l9>To7Wg1wG><*y@881g2EsN&-oC*v0VDkEG<-_5$2)PI@Ce_VEG8fn6i zeqhr1!kB|j^nQh?BE(eQDX>)e8uG&_mr9OFZ{>5Pf`WIsy3`X-3#7<{a>cl>uc64Y zMEEbMH{PVjXVjfi7O56iI(~5hdC+LhJ)r`dTT>pGF(hHhE!6ABA4@S|K8ulX>m;L}VT6G#8C;kXs z#BxHwp&{*waCa6(T#Qw9ELN+|e`?Ol_2>;jxKbr}F9bvL|G8|*aKo@iU-ZxwEoF^W z)wrwPcm%h^TQk${)?D-G5p|Ml`hsSnHOyp!M;wb*y9j>7R?#%*_!r}xpdRonrp3Ux{kMdWeHR0 zR{KtYmuDJFi|op^yt-PZaM$<^n((ZVs6v&1>Pf0fkI#~oaBG#iI97_uZ>b?kb@-6J z1>9pbNpJhbRjwc&f0pd<99-u9D0V@iE>zN{?)}vyN!n8w+q2d>J#Gxg%r!&ms!T8o zWEh7{9ek8&oj$?}60L`*HsF}<17h(}FL$#N|3 z_xjAg#%wZW=#9(ZCsR=cme*_XeQs<41C`1xfz`epINm(EVA-#;>{C}bRz#5f@dsP? UE_Yc2{$oHPL7c#I>$Xe(1mJb_lK=n! literal 0 HcmV?d00001 diff --git a/images/button_numbers_off.png.import b/images/button_numbers_off.png.import new file mode 100644 index 0000000..133f0f5 --- /dev/null +++ b/images/button_numbers_off.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://byiom6ry6bpb0" +path.s3tc="res://.godot/imported/button_numbers_off.png-f90b8a095c628051a8864ba56881c222.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://images/button_numbers_off.png" +dest_files=["res://.godot/imported/button_numbers_off.png-f90b8a095c628051a8864ba56881c222.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/images/button_numbers_on.png b/images/button_numbers_on.png new file mode 100644 index 0000000000000000000000000000000000000000..7071f3a0a4701e82719b4f5c13d7ddd7daa83634 GIT binary patch literal 2451 zcmd^BYfuwc6kf$xO==P3F%<o_p?h zzVGJd&OOR3t)@2{SVOU`ScDve0M_dPWe~AmGw=sna03(221!r?0jL8KuwW5#5CS^YoAt1B zSx(BDRLK7?Op7L7M36~~6XNA*+KRs0FMe=q)l^>6Ou6#CS>K0kZ5+PTRr*?M$mCqV zIZo%EBl2 zv#!{SE&iBMM%_}DIE6))=X^DRk~qOK1+({Z>Zh;_G6#u`yvi4r&DN5fz_)gxT@&M+ zVB0<(3-EaqbLUe5xjtt!q){{#@zm|Pz`Hn!9sK#6w>@~WM!7M&K* z;YqRn9KSKH?OTAR;|3lcdH%NrK3*tKvNFe$91b8fF@n4zXRiU}KxYIqLsh@{54Zpo zn)TKQc5C@g^~7dQ<4ry80ME&Tx1*dp&$i*?`hhgVZZ>g#DvWTP)xC@j5SUlD=JgS_GA(-WzqE*m2>8( zD7`P)df~imbTCLy`3fd&l?P_?OZbEvD^HB%d!Rd@^c0C?CWO%+OfxvJ}x~O+JS|`1C|3q$@ z^%wM4)kNL49&xC18zw#~Cwe?{wB%xb-dw6bZTWoXhs5yw-RP2m3PH}-mWsAn*g!!b z+BKagG0<9aW-zmi%0Db8!gL+H^S4shY$*}yq?3v4{Wx(=gLWO@=T*{8EwiZoC_Vm8 z-#nq{ssS}l!0K1ZsU9(rt>iUzxHoJrq5rx=vq?QL1FJXVg`MuZ>f`Eb0%f$5+u4^` ztD?AqT9VIsn~BJdNt7nWO1fWlRksVhRVBm4X*{cxN1N6@a6lZNPb$ptHFaC{`0KLT=5|Szd(TkX-j%xR4tF=9 z;EnBH+fQY1&*~7!b1&twa9%q+iqm?Zw&~Fz=2Dn?n~XaIvxM$5!WJ%EtG{`*z8s^qs6xAM1!w!(oDU{4>eY~Bb4i;+ASOn z`mg;Se!%r4WQQxwSBX{A3xCjr^mqO_t)drRb+2x=7x}vJF5>Gs6c&Jm`g(7V?rs$t l$L3$M;jKOw@P4%Om8RcD*R@3b2!BS91jU;8(tQ z5{BN`4^k36LvI8EkN^n)fId(Ts=y-1fguRJkpr}Wk={rK_yH|o10(<&KmsHH0Qx`? zr~->12ZkUXFrzcT&b{M;{DVRM-wNAh2sor!u&)m_gq@>&LOsxa_bM*Hjp`@!&bfJS zA!o!XMSnxLt>x-Q9v{Nt<8e7_u8NMOik83H5O=*O+4EL(s@R53L@01lGwl8{Fu!FX zeV$>)*7a~ApJw`qudhO!3{#cHQgidBMSAi&_JB&$)nD7<+@!uC4E9NRAC5LGclF!$ zYlCI;^GQ50-UPXVjPd+uO?{}cGt{Sv=@+qm)Qova5PK-iM0*Lz;1S$(<7@&5gf(ri z+1iBFa@ZiG+U1JV`NwH$6^I;GpzOI%mQ7z52v6*)kd|ITxL*r`C1p@EW=D9PO#^}D zyxEJRky(51OO*8RndJQy~8M8v6Y{o^)2^h}1Mwz`3N3X`sr zY%V0@b&rq(6gwy7Iq=S@f_7HqQUM?32GnB5O$8op^ zDc>djAZ6O3xoIKUTM}aMRdCTAH$m@FbM7Ox!UDX^^(XsWGY>{hXf~neD@6eDR^hzZ z8sr0-`mFDb(j;yHv$3OTX9n+St5tav{WSPE7oN0H$Sq|tL$P4HF9&e)Qt{m;IJ$Xg zmjLMxBONl(9~yl}*%sUri>%l&UO`7SMf^44%0Sr-?vb$r_rD-!3xElb(WePxpmt0&qA2~+RbX+-97E%9=zyG&~J zaU*Fn&v_5!{=Usrba#+!>a1Oy^o<@nO@kBe3Eh{9H8|h?g{7D7 znVpx$PUzI%z=D0M5a*8+@krZ8M`2Q}To&vfbIO@Ru|&WzA@^8tYdW5ri&fMwLK`l7 zXwGKN@9{*}s;d@v2BvwB*;MNR;b)Qhd7%n_M$`UEp zUf>iIPQ?@UP@WB5@(+{nW!1j**UG7B`HH~mA=E01}Gt28OWZY8(_=@)5K!v*>!_idXx;ih&y zZ?OK_pb8g}b{=I9lI(4`+tWrn>@@vJ>YOT*5VWx(WajYo4~z=521l-AE$KF>41ca> z5n5sBPh$qjYT-~*MLUn6sI)Ukhzj5YpsB_RtV(E+Kv_?$act<~Tbk650=q9pQu1qR z<`;MItxP%pESzJfc2;hRr+h?8T4++*9E#QI@719iY4DF?d>YAeK*Q>Se-z1dBx?~$ zoK3eimA}i4JOkIPha*g?n~8DKM<%C-lSQ~Tlg!%C1ugfLDACc;)S%M%s&95oPc~iA zPG!6=vd(&4CeUyEG<=w^uDL)gel^pyN473!Iyw7E>>V1Vx-q)^`4W@-clEP$g>ur2m%KU=sXjYQ~%h@;Sqs!Ey?D zge6tUE+)Zm!;#ms^>yPE1Uk=PbYR#5@;SDCn;M<Hl&cKT+cBcDwS?JG;rSOv&P#82h_ zUHOl5Mma|aW3MHgG=PSVBv#*kt52f#+VC#(WZ@@9r&ois!QCL%-y7AXg^UsMklap95@tt@SX*|;G2bx8O=jS2e2l