From 50af20981ff5227d591ff80145ee7cd4fed29d1a Mon Sep 17 00:00:00 2001 From: sysadmin Date: Fri, 28 Aug 2026 12:49:46 +0100 Subject: [PATCH] fix(lobby): ship real portal textures; they pointed at vanilla paths The four portal blocks referenced vanilla texture paths from their own pack (emerald_block, amethyst_block, prismarine_bricks, end_portal_frame_top) without shipping those files. While the blocks rendered through the legacy blocks.json path this was invisible; once minecraft:geometry made material_instances take effect the lookup failed outright and they rendered as missing-texture. Ships real 16x16 textures generated through scripts/build-textures.py: a dark stone frame around a glowing field, one hue per destination -- jamie green, lyla purple, mya teal, plus a gold-ringed frame. terrain_texture.json now points at these instead of vanilla paths, so every key in the pack resolves to a file the pack actually contains. lobby_transfer_RP bumped to 1.0.1 so clients re-download rather than serving cached art; the lobby world pin was updated to match. Known issue, not fixed here: lobby_transfer_RP and hub_return_transfer_BP share pack UUID b2c3d4e5-1111-2222-3333-fedcba654321. They never load on the same server today, so the collision is latent, but it makes version bumps on either pack risky and should be resolved with a fresh UUID plus a pin update. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_015Gf1kZypRDfPL1YiWUS1LC --- .../textures/blocks/tent_canvas.png | Bin 427 -> 381 bytes lobby-addon/lobby_transfer_RP/manifest.json | 18 +++++- .../textures/blocks/portal_frame.png | Bin 0 -> 194 bytes .../textures/blocks/portal_jamie.png | Bin 0 -> 216 bytes .../textures/blocks/portal_lyla.png | Bin 0 -> 216 bytes .../textures/blocks/portal_mya.png | Bin 0 -> 216 bytes .../textures/terrain_texture.json | 8 +-- .../textures/blocks/mailbox.png | Bin 228 -> 220 bytes .../textures/blocks/post_office.png | Bin 321 -> 295 bytes scripts/build-textures.py | 56 ++++++++++++++++++ .../textures/blocks/smart_crafting_table.png | Bin 407 -> 366 bytes 11 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 lobby-addon/lobby_transfer_RP/textures/blocks/portal_frame.png create mode 100644 lobby-addon/lobby_transfer_RP/textures/blocks/portal_jamie.png create mode 100644 lobby-addon/lobby_transfer_RP/textures/blocks/portal_lyla.png create mode 100644 lobby-addon/lobby_transfer_RP/textures/blocks/portal_mya.png diff --git a/camping-supplies-addon/camping_supplies_RP/textures/blocks/tent_canvas.png b/camping-supplies-addon/camping_supplies_RP/textures/blocks/tent_canvas.png index eb9a78e16bc07886152307345dce44fc307f8559..fce37df81aceba60193e1f2cace273516ce1efd7 100644 GIT binary patch delta 354 zcmV-o0iFJ<1N{P!B!5InL_t(|oTZX6O9Md=h4&6?iy#t?6c(C7#Og?4A=pW(>us&` z3oPyY3swR9tHe&Ql&dT(w6O?5L@fLR$~X9i$#OP2u(!LjZ)fMdd&SkX}Nkb_RCJ8o{YUkfY9NUV8BM>Lf+PTqC+fgsVf8$@{8^%D}RjS^uTmS$707*qoM6N<$g1Zo~ AX8-^I delta 401 zcmV;C0dD^N0;>a%B!6;AL_t(|oTZYXYQs`##?!l_ z<8Sj_W3H+_g()Sk!jvb3YkY+%Slb%^`dz7R&>|w@`BbH|61S1K-*QTB`op)015yANkvXXu0mjfh{(yL diff --git a/lobby-addon/lobby_transfer_RP/manifest.json b/lobby-addon/lobby_transfer_RP/manifest.json index d1bc25a..8f09ef8 100644 --- a/lobby-addon/lobby_transfer_RP/manifest.json +++ b/lobby-addon/lobby_transfer_RP/manifest.json @@ -4,14 +4,26 @@ "name": "Lobby Portal Transfer Resources", "description": "Textures and lang for craftable portal blocks", "uuid": "b2c3d4e5-1111-2222-3333-fedcba654321", - "version": [1, 0, 0], - "min_engine_version": [1, 21, 0] + "version": [ + 1, + 0, + 1 + ], + "min_engine_version": [ + 1, + 21, + 0 + ] }, "modules": [ { "type": "resources", "uuid": "b2c3d4e5-4444-5555-6666-fedcba987654", - "version": [1, 0, 0] + "version": [ + 1, + 0, + 1 + ] } ] } diff --git a/lobby-addon/lobby_transfer_RP/textures/blocks/portal_frame.png b/lobby-addon/lobby_transfer_RP/textures/blocks/portal_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..3570da4866a2e10327ad3d92a3239ea957ce7620 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`ot`d^Ar*6ydAfc6op(^PD1Ifu z%-!+v$w%j+vk3`F3j{VO6z{A3?KMSBPcQEcTf>1>kDl}VaEMs1!Zp8D!u1DF`oYx6 zGY(XX{9Dc6w1oZ9In7-^mT*cxm{&Y=fuc`K4ufP9|Aq&X4m?d?#1rAFp!HEopiP;p s(}=;cRghcb9Cwe`saYxM=@S?k^7-ZW>LFVdQ&MBb@0Kqjz-T(jq literal 0 HcmV?d00001 diff --git a/lobby-addon/lobby_transfer_RP/textures/blocks/portal_jamie.png b/lobby-addon/lobby_transfer_RP/textures/blocks/portal_jamie.png new file mode 100644 index 0000000000000000000000000000000000000000..2a91d0859bcad27263267901a07e6ccd7086c760 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^F3W0Ln`JZ^K|?CJMW-oQT$4R znY-iTlaJ0tXA>Bt8JP6v*{gakZdqcoic#Ui(McBfKgguFY>vF3dV1LtL!GG2Y^#s$ zm>|%$ZjPr$lFy5-g3M#8$D6zjPnad~q#eqXWoEvy^M#+G`f5AvBomQFDR8gFvZ!B!Ln75`vKd5OJ*w@0zD%qzj?!B#K6#bN@I7nvRW9> OsSKX3elF{r5}E)^noc?Z literal 0 HcmV?d00001 diff --git a/lobby-addon/lobby_transfer_RP/textures/blocks/portal_lyla.png b/lobby-addon/lobby_transfer_RP/textures/blocks/portal_lyla.png new file mode 100644 index 0000000000000000000000000000000000000000..3f663686c3b47a4ce8366a5ecfca4b769b580608 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^F3W0Ln`JZ^K|?CJMW-oQT$4R znY-iTlaJ0tXA>Bt8JP6v*{gakZdqcoicw*~VX2c2JUc#BTh2M#q<8aT!08Q17wgtY zDL;~t)RLMNcx1)}(TA6My!%+ECr!vbB5|hWvK1TKhT@BJeI_v;VGygCw17eNc7tdI zlkj?Rr3*~`6J)q|G3;~LeW8G5KjR6_o(KkWhH2Y8S$n)r%}Pm6pTNkl)m^J=^W?TD Qpi>zBt8JP6v*{gakZdqcoic#Ui(QES>B@Pt-P?&SJN$=)`>xT`JuS%_v zGCt%aA=Tv-aAd{>(TA6My!%+ECr!vbB5|hWvekt0E-!;QK9d-aFo@MmTEL)syFs#o zNqD`u(FLad2{PQf81^}2TNEgTe~DWM4fpJq*m literal 0 HcmV?d00001 diff --git a/lobby-addon/lobby_transfer_RP/textures/terrain_texture.json b/lobby-addon/lobby_transfer_RP/textures/terrain_texture.json index 0256dc3..fad00e5 100644 --- a/lobby-addon/lobby_transfer_RP/textures/terrain_texture.json +++ b/lobby-addon/lobby_transfer_RP/textures/terrain_texture.json @@ -5,16 +5,16 @@ "num_mip_levels": 4, "texture_data": { "portal_frame": { - "textures": "textures/blocks/end_portal_frame_top" + "textures": "textures/blocks/portal_frame" }, "portal_jamie": { - "textures": "textures/blocks/emerald_block" + "textures": "textures/blocks/portal_jamie" }, "portal_lyla": { - "textures": "textures/blocks/amethyst_block" + "textures": "textures/blocks/portal_lyla" }, "portal_mya": { - "textures": "textures/blocks/prismarine_bricks" + "textures": "textures/blocks/portal_mya" }, "portal_field": { "textures": "textures/blocks/portal_field" diff --git a/postal-service-addon/postal_service_RP/textures/blocks/mailbox.png b/postal-service-addon/postal_service_RP/textures/blocks/mailbox.png index 06b83f5c6a1c1159fac78e71bd810709b59e0ddc..38f4a1f40e83c8b1a7cafad35fc69f23a87adce7 100644 GIT binary patch delta 192 zcmV;x06+ia0o(zQB!8nxL_t(|oMXJ>?fsvD3^4uNIWWxv6S#c$E;;5fFu@p=&z}>e zfi(qHEfb8>h42RciU>ZO!U?Ek*k*tply&@tE=C}-K=HkL@K<&4048?EW zFdV^Uz@tZx@H;_71cl3jF8}f4N6HLXrL4?A3Sc5hHK_)yHaRk4NPY8$d;@mv+C{tz uuqEZ$A|han4k${>=xX7yaD-6w;Q#=SaW0x(bqk^Z0000 delta 200 zcmV;(05|{K0ptOYB!8<(L_t(|oMXJ>?fsvD3^4uNIR*v>1_lI8%Y{tWn{oK6T0&bA6^B<$b4J?q?ZX^@5P-3f#bIoi|6$_bq>P>xNJ-i#2?@l80epD@SsVbnrk+v6 Tq4D1U0000J{1BYy!1Nkl15QRT2VlctD2rgV0*Flg3j9M1~u}9c0 zW$ut8TQ!hbowI=>j;Z15=#uyC%@ zgCvgH^+4@?AATAIz7B@~7~fu&rDR!pv_FUCW{ar@1576FVj^Aj;qbF4ZnCV26?v~q zUKE4?R)m>nx9;Q=w0A)gN2L{EwqD=lMDg6Y`!7N3(XL(_B>zt9IWSfPE5cy6$BF<{ tysj(P`c*f+B_L=v+QvUnT>1-j{SUjQo>A Image.Image: return img +# ── Lobby portal blocks ──────────────────────────────────── +# These previously pointed terrain_texture.json at vanilla paths +# (emerald_block, amethyst_block, prismarine_bricks, end_portal_frame_top) +# which a custom pack cannot resolve, so they rendered as missing-texture +# once minecraft:geometry made material_instances take effect. Ship real +# textures instead: a dark stone frame around a glowing field, one hue per +# child, so the three destinations are distinguishable at a glance. + +PORTAL_STONE = (58, 60, 68) +PORTAL_STONE_HL = (86, 89, 99) +PORTAL_STONE_SH = (34, 35, 41) + +def _portal_face(core, bright, glow): + img = Image.new("RGBA", (16, 16), PORTAL_STONE) + # chiselled frame + rect(img, 0, 0, 15, 0, PORTAL_STONE_HL) + rect(img, 0, 0, 0, 15, PORTAL_STONE_HL) + rect(img, 0, 15, 15, 15, PORTAL_STONE_SH) + rect(img, 15, 0, 15, 15, PORTAL_STONE_SH) + rect(img, 2, 2, 13, 13, PORTAL_STONE_SH) + # glowing field + rect(img, 3, 3, 12, 12, core) + rect(img, 4, 4, 11, 11, bright) + rect(img, 6, 6, 9, 9, glow) + # corner sparks so the field reads as energy, not flat paint + for cx, cy in ((4, 4), (11, 4), (4, 11), (11, 11)): + px(img, cx, cy, glow) + # dark centre seam + rect(img, 7, 7, 8, 8, core) + return img + +def portal_jamie(): return _portal_face((22, 92, 40), (46, 156, 66), (140, 240, 150)) +def portal_lyla(): return _portal_face((78, 40, 130), (126, 74, 190), (214, 168, 255)) +def portal_mya(): return _portal_face((22, 96, 104), (46, 152, 160), (150, 238, 244)) + +def portal_frame(): + img = Image.new("RGBA", (16, 16), PORTAL_STONE) + rect(img, 0, 0, 15, 0, PORTAL_STONE_HL) + rect(img, 0, 0, 0, 15, PORTAL_STONE_HL) + rect(img, 0, 15, 15, 15, PORTAL_STONE_SH) + rect(img, 15, 0, 15, 15, PORTAL_STONE_SH) + # inset panel with a dull gold ring, echoing an end portal frame + rect(img, 3, 3, 12, 12, (48, 50, 57)) + for x in range(4, 12): + px(img, x, 4, GOLD); px(img, x, 11, GOLD) + for y in range(4, 12): + px(img, 4, y, GOLD); px(img, 11, y, GOLD) + rect(img, 6, 6, 9, 9, (70, 66, 40)) + px(img, 7, 7, GOLD_BRIGHT); px(img, 8, 8, GOLD_BRIGHT) + return img + + def main() -> None: save(smart_crafting_table(), "smart-crafting-addon/smart_crafting_RP/textures/blocks/smart_crafting_table.png") save(post_office_block(), "postal-service-addon/postal_service_RP/textures/blocks/post_office.png") save(mailbox_block(), "postal-service-addon/postal_service_RP/textures/blocks/mailbox.png") save(tent_canvas(), "camping-supplies-addon/camping_supplies_RP/textures/blocks/tent_canvas.png") save(portal_field(), "lobby-addon/lobby_transfer_RP/textures/blocks/portal_field.png") + save(portal_frame(), "lobby-addon/lobby_transfer_RP/textures/blocks/portal_frame.png") + save(portal_jamie(), "lobby-addon/lobby_transfer_RP/textures/blocks/portal_jamie.png") + save(portal_lyla(), "lobby-addon/lobby_transfer_RP/textures/blocks/portal_lyla.png") + save(portal_mya(), "lobby-addon/lobby_transfer_RP/textures/blocks/portal_mya.png") save(redstone_link_tx(), "redstone-link-addon/redstone_link_RP/textures/blocks/redstone_link_tx.png") save(redstone_link_rx(), "redstone-link-addon/redstone_link_RP/textures/blocks/redstone_link_rx.png") diff --git a/smart-crafting-addon/smart_crafting_RP/textures/blocks/smart_crafting_table.png b/smart-crafting-addon/smart_crafting_RP/textures/blocks/smart_crafting_table.png index 0bb9084c0f9402ab23b29378185cba7f8ae442fa..1cd9848a53be8079ad0607ba7cddc6caaa6d09a4 100644 GIT binary patch delta 339 zcmV-Z0j&O)1MUKlB!4wYL_t(|oMVh~%^^_*iYADn&nV*905~(9 lzWfEJ0(=0J7Z@qc&H%r4Y$_#fxdQ+I002ovPDHLkV1i7}lD7Z= delta 380 zcmV-?0fYYT0+$1jB!6B>L_t(|oTZa7NCHtD#(x(LaReqvAVer4xHuFXLeL;Y5Q4Z| zLv!F(OEf!&OD;7uw7Ap~LW|U71jm66Hz*z=9f1&mhS3z*aJ|#>&IbFIckkVIzx#jh z|DJS^mPdudRpwFQ>J6z~j*Q|P%3J`mp|dC^7nkoI!%nITz<+}l1)!>#?55%X1Y`px zxjY6`HItS#m;!_VDBbGLTFcT&tgoP^?fHUu5eo+aXr{B=1lBy&T)zy-)w(XP3m|0F z>wa;$v%C?3aRj0Lk5_-dcGP+9^!jWjrT}?$NL~%OK8oLO0Z=JEdw{wzqk>6^I7^w? z9tUt*`u238QgyT|%AUCMAE^of*)GA^MA6?|?F{)m>-kgjanAux$^le0(;n+jzNMOt z@mUaFSA