From 7f5a522ae57ea3b910a6387a6dc5d29d758ff6e0 Mon Sep 17 00:00:00 2001 From: Voyager Date: Mon, 24 Aug 2026 12:01:20 -0400 Subject: [PATCH] Add finished creature artwork --- art/exported/creatures/101.png | Bin 0 -> 6688 bytes art/exported/creatures/101.png.import | 42 ++++ art/exported/creatures/102.png | Bin 0 -> 8589 bytes art/exported/creatures/102.png.import | 42 ++++ art/exported/creatures/103.png | Bin 0 -> 2764 bytes art/exported/creatures/103.png.import | 42 ++++ art/exported/creatures/104.png | Bin 0 -> 7444 bytes art/exported/creatures/104.png.import | 42 ++++ art/exported/creatures/105.png | Bin 0 -> 2799 bytes art/exported/creatures/105.png.import | 42 ++++ art/exported/creatures/106.png | Bin 0 -> 3777 bytes art/exported/creatures/106.png.import | 42 ++++ art/exported/creatures/107.png | Bin 0 -> 2873 bytes art/exported/creatures/107.png.import | 42 ++++ art/exported/creatures/3906.png | Bin 0 -> 2742 bytes art/exported/creatures/3906.png.import | 42 ++++ art/exported/creatures/4401.png | Bin 0 -> 2936 bytes art/exported/creatures/4401.png.import | 42 ++++ art/exported/creatures/4701.png | Bin 0 -> 3770 bytes art/exported/creatures/4701.png.import | 42 ++++ art/exported/creatures/5702.png | Bin 0 -> 1760 bytes art/exported/creatures/5702.png.import | 42 ++++ art/exported/creatures/5901.png | Bin 0 -> 1940 bytes art/exported/creatures/5901.png.import | 42 ++++ art/exported/creatures/6103.png | Bin 0 -> 5998 bytes art/exported/creatures/6103.png.import | 42 ++++ art/exported/creatures/6804.png | Bin 0 -> 4219 bytes art/exported/creatures/6804.png.import | 42 ++++ art/exported/creatures/6905.png | Bin 0 -> 6838 bytes art/exported/creatures/6905.png.import | 42 ++++ art/exported/creatures/7403.png | Bin 0 -> 3144 bytes art/exported/creatures/7403.png.import | 42 ++++ art/exported/creatures/7508.png | Bin 0 -> 2019 bytes art/exported/creatures/7508.png.import | 42 ++++ docs/ATTRIBUTION.md | 36 +-- fish/species/betta_siamese/betta_siamese.tres | 2 +- fish/species/bowfin/bowfin.tres | 2 +- .../chromis_blue_green.tres | 2 +- .../clownfish_ocellaris.tres | 2 +- fish/species/crab_brown/crab_brown.tres | 2 +- fish/species/gar_longnose/gar_longnose.tres | 2 +- fish/species/gar_spotted/gar_spotted.tres | 2 +- fish/species/hogfish/hogfish.tres | 2 +- fish/species/ladyfish/ladyfish.tres | 2 +- .../lungfish_west_african.tres | 2 +- fish/species/mahi_mahi/mahi_mahi.tres | 2 +- .../mullet_striped/mullet_striped.tres | 2 +- fish/species/paddlefish/paddlefish.tres | 2 +- .../salmon_atlantic/salmon_atlantic.tres | 2 +- fish/species/sheepshead/sheepshead.tres | 2 +- fish/species/sturgeon_lake/sturgeon_lake.tres | 2 +- .../sturgeon_shovelnose.tres | 2 +- tests/fish_catalog_content_validation.gd | 34 ++- tools/art/export_creature_art.py | 230 ++++++++++++++++++ 54 files changed, 1013 insertions(+), 35 deletions(-) create mode 100644 art/exported/creatures/101.png create mode 100644 art/exported/creatures/101.png.import create mode 100644 art/exported/creatures/102.png create mode 100644 art/exported/creatures/102.png.import create mode 100644 art/exported/creatures/103.png create mode 100644 art/exported/creatures/103.png.import create mode 100644 art/exported/creatures/104.png create mode 100644 art/exported/creatures/104.png.import create mode 100644 art/exported/creatures/105.png create mode 100644 art/exported/creatures/105.png.import create mode 100644 art/exported/creatures/106.png create mode 100644 art/exported/creatures/106.png.import create mode 100644 art/exported/creatures/107.png create mode 100644 art/exported/creatures/107.png.import create mode 100644 art/exported/creatures/3906.png create mode 100644 art/exported/creatures/3906.png.import create mode 100644 art/exported/creatures/4401.png create mode 100644 art/exported/creatures/4401.png.import create mode 100644 art/exported/creatures/4701.png create mode 100644 art/exported/creatures/4701.png.import create mode 100644 art/exported/creatures/5702.png create mode 100644 art/exported/creatures/5702.png.import create mode 100644 art/exported/creatures/5901.png create mode 100644 art/exported/creatures/5901.png.import create mode 100644 art/exported/creatures/6103.png create mode 100644 art/exported/creatures/6103.png.import create mode 100644 art/exported/creatures/6804.png create mode 100644 art/exported/creatures/6804.png.import create mode 100644 art/exported/creatures/6905.png create mode 100644 art/exported/creatures/6905.png.import create mode 100644 art/exported/creatures/7403.png create mode 100644 art/exported/creatures/7403.png.import create mode 100644 art/exported/creatures/7508.png create mode 100644 art/exported/creatures/7508.png.import create mode 100644 tools/art/export_creature_art.py diff --git a/art/exported/creatures/101.png b/art/exported/creatures/101.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e431c4e13d5ce8ee18de9eeab71b38914e5e14 GIT binary patch literal 6688 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 WD@hOa1pmHNfSHlCVa*-axc>otn_ZFs literal 0 HcmV?d00001 diff --git a/art/exported/creatures/103.png.import b/art/exported/creatures/103.png.import new file mode 100644 index 0000000..2972cde --- /dev/null +++ b/art/exported/creatures/103.png.import @@ -0,0 +1,42 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfdsg4tevv0jm" +path.s3tc="res://.godot/imported/103.png-f8985f10e04b19499cd6f5ffbadc83c9.s3tc.ctex" +path.etc2="res://.godot/imported/103.png-f8985f10e04b19499cd6f5ffbadc83c9.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://art/exported/creatures/103.png" +dest_files=["res://.godot/imported/103.png-f8985f10e04b19499cd6f5ffbadc83c9.s3tc.ctex", "res://.godot/imported/103.png-f8985f10e04b19499cd6f5ffbadc83c9.etc2.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=false +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/art/exported/creatures/104.png b/art/exported/creatures/104.png new file mode 100644 index 0000000000000000000000000000000000000000..09eec3c33e1b572627fb7755a6b28f0182b67312 GIT binary patch literal 7444 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 literal 0 HcmV?d00001 diff --git a/art/exported/creatures/104.png.import b/art/exported/creatures/104.png.import new file mode 100644 index 0000000..01a9393 --- /dev/null +++ b/art/exported/creatures/104.png.import @@ -0,0 +1,42 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://pgm364g5qlgs" +path.s3tc="res://.godot/imported/104.png-e164f67032648af2cc0a545d2a861c7d.s3tc.ctex" +path.etc2="res://.godot/imported/104.png-e164f67032648af2cc0a545d2a861c7d.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://art/exported/creatures/104.png" +dest_files=["res://.godot/imported/104.png-e164f67032648af2cc0a545d2a861c7d.s3tc.ctex", "res://.godot/imported/104.png-e164f67032648af2cc0a545d2a861c7d.etc2.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=false +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/art/exported/creatures/105.png b/art/exported/creatures/105.png new file mode 100644 index 0000000000000000000000000000000000000000..3ba1000ed6a4247eb2659d96327c55a39e68f614 GIT binary patch literal 2799 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 H?g{?`DnM*Y literal 0 HcmV?d00001 diff --git a/art/exported/creatures/105.png.import b/art/exported/creatures/105.png.import new file mode 100644 index 0000000..de797a7 --- /dev/null +++ b/art/exported/creatures/105.png.import @@ -0,0 +1,42 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwanip2j561n7" +path.s3tc="res://.godot/imported/105.png-a2b440912e59b3375c6e61e17d08287b.s3tc.ctex" +path.etc2="res://.godot/imported/105.png-a2b440912e59b3375c6e61e17d08287b.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://art/exported/creatures/105.png" +dest_files=["res://.godot/imported/105.png-a2b440912e59b3375c6e61e17d08287b.s3tc.ctex", "res://.godot/imported/105.png-a2b440912e59b3375c6e61e17d08287b.etc2.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=false +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/art/exported/creatures/106.png b/art/exported/creatures/106.png new file mode 100644 index 0000000000000000000000000000000000000000..61285cbcfb617d3e4526c1b0c8eeba1e0db0e2bd GIT binary patch literal 3777 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 F{ttQRICcO4 literal 0 HcmV?d00001 diff --git a/art/exported/creatures/106.png.import b/art/exported/creatures/106.png.import new file mode 100644 index 0000000..3032c38 --- /dev/null +++ b/art/exported/creatures/106.png.import @@ -0,0 +1,42 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cr7tc11ievso5" +path.s3tc="res://.godot/imported/106.png-306ce449448588714e5a0e883ae441ac.s3tc.ctex" +path.etc2="res://.godot/imported/106.png-306ce449448588714e5a0e883ae441ac.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://art/exported/creatures/106.png" +dest_files=["res://.godot/imported/106.png-306ce449448588714e5a0e883ae441ac.s3tc.ctex", "res://.godot/imported/106.png-306ce449448588714e5a0e883ae441ac.etc2.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=false +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/art/exported/creatures/107.png b/art/exported/creatures/107.png new file mode 100644 index 0000000000000000000000000000000000000000..c843bbe1f4572dcf00a3e31e422fdee3768e1c48 GIT binary patch literal 2873 zcmbW3`9IT-1IOQ(tG;Sz?$9tAbF&W#Eio+R*eG%pOXfZ4&o%K7d4!}lNf{P23det7--dOV)gt5#+L$0Uvc03cwFHnI8Bl>dc~=MO&^ zy7d6SalqW@oiw^&od{fcO2N^7cwzR04z~$Lq=6Z@YeqPEg zuY`JfmdxfA+K&cvQgO1eBFCWnSgJ)v2Q_~}Z?Yb%O4q|k(e=VVGIoEi-47X95A|$r zWKOdtyy@mGGTsZ1bKhufGWVwaL}X*YD84iQ3SHsCk#t^Riag*A5O`{Yjo&fp7l09< zkLxy%EB94EmczKZ#RW8r1sb=!y#P}VDIPWlMHt`#Fb1q-!|twICBQEoiW@0SdUOfo z4{o~;SOVePZR__qUUG;rjuP3AIoXatHAfe5Ec%y{tc1f0?~R`TNBjuBIW^GeD{O0qY5A!I zS#kB+T9^_vNvr*A`m%p%mBr-7Mu3i9ZLLOmk`vxg@IrZY>w~^3-*wx(HH&xmc7C9b zQ=CGOloZr~J1X2jNN8R|Tl+=58O%w0@}DmmFz%ry|Fr!4q>;tvCke~`fBjiOi5}o) z(m~DjO7;BoT6rX|mzPl0FFb)DrDzo)Qfe*%9G5=B@sM|IGepx!O;j1DVk_Z&yKY|% zarVSydIBZkN&V|!R{}x%Nn3sWl&RaCX3EXz=!?HttcIH7*WFQ^x_(*20DY)IAvwTs z;Jn=OCwPn{Ai|a7IefQH%i7tw98(*4+bkl2$)!g8HXz7iHp>w_83*Fw&x#s;zrHKT z;rP!+6q2bCyK`V<7(5i@G~qjg6J#5Hg{nFe*oG=z-^E070JMJAw+LhT8}iJ@X=$|R zoS3ua72Y+0%epByNzEj*i+mZ0ose5ud0tw?ZD=18q5huWAQAteD5l+YGEogAl`UuX zz3F5#?`*t-ET?O>@zfZVN;SnU!cutj^v2OwMEljl2)d2$;?MCOZF4vuFqNh0FqjnF zmoGNjuu4l*TbFqiHG94xG<00a5i9Wm9D@kVNdkyd;q;#tDe30sR3#+`edW!FUu^5= zK}C1`Zmja#;hJYRr=DA84^DbV4(sXh^JGO{C@w(<>zi9yiMYGF*WUF=jUQz&kh9F@ zQA)pjzmJv1d;^|QM(Wl!QQF%>z(3~XfSYsOi9`^sKYT6#qnRoC#&^SCPDjR4V~8t& zx1c1r05n_Gaqkdzl#90*U@{}8oXj_(FUGjf$1SJkWl0Q0ceRZ&T&%g2-$R$|RLYBq zb!xZ|VRiU4LC{kg?WAu0sRL99grA=uefhDFK`8UxJl^0d-_FMQkQV9bX`AMsvkJgb zrvX3Zdv|gAqK87&1vmmxFuGA;Up;^KgAUeU!*oc+%LV(YbD7dDi;f9j{G^lVEFS&U z8@0QuB6j+;fPNnugE6^wjXy0toht-4oY5^UDfyu*fgo2i=>tay=-9sXFXHIz?9tHm z#2#$KzO_7ihaYN}<|$G3^}%9K#wDQ+i3BYBLX&gciAI3M#SXctXhh~88n&tNn+XAn zipF#CGU=n05NYA{wN~cDQQY^bBuQidYs}oi2bWO^Z=W4d|J+@dJYV=|ijV_^erfJ7 z=phSAh=a<+9aKahZ1HI5k5htfs6Ve58n#XS>d9P|yqteZL~x+A^tLu~=Eq+%Ge%E9 z80Zn}McMPHg$4On{I7y&nL%Lr=!Y$dlrN)?bFnL88j|E0CX>3`!^jxTtc2q@WrdA2 zH6Pg0j0$x(5Qq@}>Q@3T5ut-v7({tsWF$%DO)?&jFZcfB3V}eLlq{uF3>o&A!I6>J zxl}Wz&NGCH#N4hp+ z;NDAaq~Gfp1A03jCBvV5My4Pv7$JhN*ko_ht`uS=V1=XrR*nN8;P?hN*XD9q#3>!p z5i1t0E>7%pUHk;Gh{j(GGvjrCdb5VO0gcIDS&<-&*I73RlF@C70T0)MxO0iKeUBR* zUcYD?A?qO-tN?RsEnxEjg7+xH`G4tDL@@ovnN75 zI!%LQwY0dz#clTZPmtGUcgVk9)&Wodf$YA*yA0%>$5mXu2CluzsGey{YjQfJ(i?~n zqk5QIVC*2oCf%Mk(+Cx(a?V<1dr7yT3Lz_J%jgkLGbh5|4|F;d?hlWTC$U&(ca~O{ zdza)FO`8Q*MHUm1lW{0KC=S)?(dOb~Oq6N+-u~0iRKwV#lLy;R1_#lNwk1~|K)}ak zS)pF>dH2@$|2p+9?0#xde%Q_5I7}t!JqPV#)~(Zb(&zK`%XCkSm_}K0QP~Kti&fs@ zUGnBHf7IDL-;ToUVrs?}2gb%0ic~bay+MyGD6BYmAx7K%X%-9nBDMvpOjCBA}~yv0iE_WJ%$PEz*@ znA5|wn741WS}3DsT?s2m%$B(7sH`UZyQ64t z=Ndw&SNqGI5k?iwdVlMfLS>{nrl1j`p5?4)zbPdqCT4dXQJ8e+dXox7u|rPZLX)r2 zVvi8q_+y-@SKFkN=5A$bVNthRP@FNt&3{@s<#FD9%5XT77*L*&x#;fVw0Q@a!aA;h5=Ma6e=%Ss;#g_hs*?Xc<_ARdzGrEIUTGjZ-*cFXkw*d`(9*mQga_M=R= zON6y9wYX%xW#hmqG((<5*Z5QDNc&g>*rvF~wdF(`G=~%Hd?M^cz?&Fb8S!Y)0 z3cku&Hf*4|gOk`YhW0eM3myz{a49O_pzc-|Etoy~R|5He?*xu`XNS~YMlS#U_D6{U N^GjAHRVde}{{l7{NXq~K literal 0 HcmV?d00001 diff --git a/art/exported/creatures/107.png.import b/art/exported/creatures/107.png.import new file mode 100644 index 0000000..c4d28e8 --- /dev/null +++ b/art/exported/creatures/107.png.import @@ -0,0 +1,42 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8rf4tnxx8mov" +path.s3tc="res://.godot/imported/107.png-062740d0bdad6e3ac4ecc1cf92ee6b9d.s3tc.ctex" +path.etc2="res://.godot/imported/107.png-062740d0bdad6e3ac4ecc1cf92ee6b9d.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://art/exported/creatures/107.png" +dest_files=["res://.godot/imported/107.png-062740d0bdad6e3ac4ecc1cf92ee6b9d.s3tc.ctex", "res://.godot/imported/107.png-062740d0bdad6e3ac4ecc1cf92ee6b9d.etc2.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=false +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/art/exported/creatures/3906.png b/art/exported/creatures/3906.png new file mode 100644 index 0000000000000000000000000000000000000000..6cc1d1b359f7ef7f8bd2c6b76fa426b72eb91558 GIT binary patch literal 2742 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 wJ%g{Tr_ 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 literal 0 HcmV?d00001 diff --git a/art/exported/creatures/4401.png.import b/art/exported/creatures/4401.png.import new file mode 100644 index 0000000..809a146 --- /dev/null +++ b/art/exported/creatures/4401.png.import @@ -0,0 +1,42 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://7dbcbicxwvlo" +path.s3tc="res://.godot/imported/4401.png-0fd242cb090b49614af9b4d07503b2db.s3tc.ctex" +path.etc2="res://.godot/imported/4401.png-0fd242cb090b49614af9b4d07503b2db.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://art/exported/creatures/4401.png" +dest_files=["res://.godot/imported/4401.png-0fd242cb090b49614af9b4d07503b2db.s3tc.ctex", "res://.godot/imported/4401.png-0fd242cb090b49614af9b4d07503b2db.etc2.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=false +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/art/exported/creatures/4701.png b/art/exported/creatures/4701.png new file mode 100644 index 0000000000000000000000000000000000000000..afd6a853fd29bca87048640a75ea6109ea855820 GIT binary patch literal 3770 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 literal 0 HcmV?d00001 diff --git a/art/exported/creatures/4701.png.import b/art/exported/creatures/4701.png.import new file mode 100644 index 0000000..5f4ed32 --- /dev/null +++ b/art/exported/creatures/4701.png.import @@ -0,0 +1,42 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://do6hcv3omivv5" +path.s3tc="res://.godot/imported/4701.png-dcb44d4ce6dfdc812a2e185e7f9511be.s3tc.ctex" +path.etc2="res://.godot/imported/4701.png-dcb44d4ce6dfdc812a2e185e7f9511be.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://art/exported/creatures/4701.png" +dest_files=["res://.godot/imported/4701.png-dcb44d4ce6dfdc812a2e185e7f9511be.s3tc.ctex", "res://.godot/imported/4701.png-dcb44d4ce6dfdc812a2e185e7f9511be.etc2.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=false +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/art/exported/creatures/5702.png b/art/exported/creatures/5702.png new file mode 100644 index 0000000000000000000000000000000000000000..2da58085c4f18faaec6247554c7ac0cef8264627 GIT binary patch literal 1760 zcmV<61|Ru}P)q8OD_Du_l~ zBUJyO1fxVrOej$>p-~DLB0)fj;ub75MSDVzef!4zW;<`+zCC-9roK-yeaFt5H{ajP z?>E1B1x!p#OiWBnOiWBnOiWBn`U%4U@G#{83~+dyi8utOB~h5k%)|p!J42GYi<0-R(p`})2mW=ngik} z?->lyBUn!xAhAB5f?10uMXExbv~->q19(Zim@(`xIe-b{ry_5`JwXqoJ8h^~?hI*Y z=I71u@!r*7>&e51%a3w>=W7e?sP;IJozn)+ffb)|RMjffLDB8KyGoFf;u3X9xRKMV zQlh@^$A<&IPe0TwPkB!aVL=Z@e&w2_LiF~Ti8!-51w+Otm^Qx!o~sTF$x-mbYrY^+ zR+cD)hZCP*?b`dPU4y~M5WDV(0m@3t57NlX>G)i}icy(u@LWg~*IC(ZXlrKLIdwF_ z0zAKYZNxS^eBJ2@P+1UUgw36XNbXYuOc+0PH63a6X{2e|4;`z(>GYxQstw8MDw^x8 zsQV+}VU;WW9nD`lC8WKoTk-Q#h@6mMm~g^NE& zt>Z58M*aP-rcjq4@pdcVD`BD#h0`3^F~dRP>GE>8wpgSHFRe+@okU*0=76dOEk7a9 z3(4xSh~@@TOte`b4J6x`dH+PHstTu#p;h79)GsKu;_X>ZeVY6z zE?+K-Bp&g-h0G@i5>I@8>>~CS?GxuN2k_lBMf5qEF)hX$`ZSirO23XptR$wZ#99`= z{kkgT-kBZKu(9xIEYGoHL?IWhKyhl{Zwih+F5L8&m_e|i>7R&#{;o~Hog!Ldv@O?x z`O9)~;+wPDY^70l7u^=;N3I6PkXOFqGX71BX@E3WhB!8PIb8N&muYYBcH$T}BW0Vl_#2|ly8Wx-JM*fm1V)JscCbS{9y92d4H&E4pqbe$3 zi(`W19cqT%ZVxe>Ty`S`EIGpIqkI@%6uJ^+WQF!uzg%|`Vp$gMfy!g&`JBa*MI4|E zFEcZc;6z&ni6z-~yfGtuE+C(!t#DduI_ew#4eR@3(iuj&fJ=2iO*0P~;hF{@=VdMo zURGKz3@442>h>WaiN`IT2s>tWn_cTLSN+1{5l>WjyrSN+Bb1K&;fA%Ja~>jI{`Sce z3=8k&NKEF~umJFW_S}K}Uuv$=SZjsnSDPkUCqD8nELtiY<)b7a zzS0jocG%? zFMko82U?Vd0;B`!6z{;cZ4!wqRjDHbsz?utMg&qasT>E zxKdKl)ZD0DQ>rbqO(L3`$sAvgZkl&X8$-|GTV`9ZWwt+ak((i>Q$=g5Kg29N+=6Cr zR)ewjsON3zY-yA2Mx)X>0}VdNJy^P)k=nmNN7Xwy+*u6L<8!^+$>YWTD(;y;01-}S1(T69p4f+A8h9F4S@ftAR{|XJbe~jo6 z!f4f~e8$GD%ztfR;3o@Gc-tQTY5|}Iy#z!5f`2eC3HezJRx8Kt+g2^O`g{x{i#vL~ z-xl;A#FU;s%qlirNl7Y(xjVGL>K^aylR>kfpK|l29f^smwyJb4cfCGi8Tt=_q@4x6 zMD^3Y_9@0lpWU~wGchqSF)=YQF)=YQF)_jajsF0=A}aS51z-9A0000x literal 0 HcmV?d00001 diff --git a/art/exported/creatures/5702.png.import b/art/exported/creatures/5702.png.import new file mode 100644 index 0000000..527c367 --- /dev/null +++ b/art/exported/creatures/5702.png.import @@ -0,0 +1,42 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dxwr7yv5h30s" +path.s3tc="res://.godot/imported/5702.png-b0cead42bd9a5851c3f6775a7d0e469e.s3tc.ctex" +path.etc2="res://.godot/imported/5702.png-b0cead42bd9a5851c3f6775a7d0e469e.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://art/exported/creatures/5702.png" +dest_files=["res://.godot/imported/5702.png-b0cead42bd9a5851c3f6775a7d0e469e.s3tc.ctex", "res://.godot/imported/5702.png-b0cead42bd9a5851c3f6775a7d0e469e.etc2.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=false +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/art/exported/creatures/5901.png b/art/exported/creatures/5901.png new file mode 100644 index 0000000000000000000000000000000000000000..a75039feaf883b458065c96d8f5165848b42e9d4 GIT binary patch literal 1940 zcmV;F2W$9=P)6GiVquKhfvTkeB#HkNdkL?a z8AUo822ddM8Xg&Zz-W;uT15TS{tDaa0v!3d7itS-=2HUJ-OV+$qQ3BpP8Mr zyXWqn{eE}P?w(Bm8yg!N8yg!N8yg#&u0!}kw}W?a{eq2~a7fu$vbMV$(G}#v>Aa+D zEGZ(<^6GFj>**W82+>Ns>6-68Tm;5^*Rv5KSako*rSdxMFQ0}q<$5t9!6YVRP#&4O zFIfEG%{z;Nj5v+|BQ}Q@%={s;DKuBmYY}EtgbHUmtMRM@W$OX-FjCKb1|+2dSFUKa za;^nxu1^J8T3VOBPz9_`Yn{irPkGC|PR*L0o##Hhw&0a{>7so9-NPn7_sK7&&8RAz z{qs3kRJ|4}lCs;`ei2-Tq3uiqP-3K3G)6Bm^gE#6MS#=12cV$`@NFXSz0=<;0lXOS zQYYVic&#gQRCe%H-V7LFMT0)ST=iRKp>U{*A`4GDf_71H50L8w)FzpX9g}{%DJj{5 z(yin8qL+3o9yRsC;lGw7?WZu zKra<)`D`|{WxBV)ojEt0I2J{GDS#;vhrGGR50(RC($OX|Qh~Aq;qQMu2w0K~B>nUh zF8(tCmulkucTNDfGeil^kl}X&)t*{hI@33jP8OwkqLuiPEa1>~V3`-V^)xWRgDxd! z9`L8vf!7WI+vY}V@6Q1IO~%MjGS-4dW=TB#YGEvfU)HiJd$Y*B)>(X%0Jw&lb7*)~ zn9?)?Dvi|Ma)5D7Ja?$@wJ6aH;9>HAWW*N5O7X<00dZ3NowZFs4b6*P%tVjY0r^#W zPI=IVNE1)LdBv-Vf8iOKmA|E8y_Hptg~=EAqX&5-&tqxtIxQz774frXl8wX&-*>P3$#hHy2;}q@)%Bjh`jes0$04jj)rH#M06Ki2l|EDt%QV!$#2~A>O$nd ze*)vPerM^S&NtQoKL1|73+N#jZW7#Dx30S7so%c--X<$QWfAU)Wn0To*CSCTjLFc- zhKAxFmup{x?I5Em7Gs;Vl_!|GbN|6x3uoZcg|ooTNkHKmp#MNXRRBc|Jb&DaW!Seo zqa*tOLiFtI#D$Jqhem7 zwo=e%Zj|Mc%nQfzDR)6t1Lp|olb_iCKvvFiiu-&jE0~%36oBsm#QXRD&4HHFS%i<; zAs|H9p~zqjVK$+;sS&eA{#eHUuA_}gIdc4JoR&GVTUO01jUm3nWQH5t$ z7Rwt)_m{!hw?CH8nTUFCV4hg9`y}$WerfcwIfN6ha3+OQAbvA`m?oZUCn>SL;u`ed zl6cOQaI-E=2FxGcjwFm*G{7)n+JaSBGGi<}HQKRU+5?Xu=Z*Klxq_Z?eISI8y-&gQ z*uC0v8U22#r)TfoNJ=ZM`DA9+;Kj8<(7S}$45^kBh;2=D2^DU-alE2m+!v+6&RA-T3jTu zMkS)DA)q%HWnJ;Q#c{)YXRA-e6)l)P(=_?vni`P*&Y>M7p01SfucH#zNHAoHi!Sa8!TucPyAPwk^-6&%)c#iLiE*ktR^YYy`11Gj%F0hXfgN4chX< z{dL%75>Iiu3gJUaT83dr1ZbAN*)&uCAmZC=03*S<#pQHfDAA3WxBA_3*W+WP8H6Jy zMtynHu97#)D&JU3R#>U3R#>NKS ag#Q7^p7{8#1%TE70000 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 O0f5v)>DJw{!~YMRHRwqI literal 0 HcmV?d00001 diff --git a/art/exported/creatures/7403.png.import b/art/exported/creatures/7403.png.import new file mode 100644 index 0000000..bef32c4 --- /dev/null +++ b/art/exported/creatures/7403.png.import @@ -0,0 +1,42 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bl7ru6gm5xnpb" +path.s3tc="res://.godot/imported/7403.png-54b51089a6ff5c2091372d659ba4bdc7.s3tc.ctex" +path.etc2="res://.godot/imported/7403.png-54b51089a6ff5c2091372d659ba4bdc7.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://art/exported/creatures/7403.png" +dest_files=["res://.godot/imported/7403.png-54b51089a6ff5c2091372d659ba4bdc7.s3tc.ctex", "res://.godot/imported/7403.png-54b51089a6ff5c2091372d659ba4bdc7.etc2.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=false +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/art/exported/creatures/7508.png b/art/exported/creatures/7508.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6c7f33ea36a99ace7405f1f1dbe1ee7d5e2d34 GIT binary patch literal 2019 zcmV<92ORi`P)? z|L7lr#4n(tu|p(83yDM^0aRKCIYLnz;RFax9MJ^l!@2r=7rmeUlFJW&~ULQ@q+965a!{X163vYxur z_dtGVmtD|r0L3@>2V_UVw2w>MUL-|Or3M{chvdp1_}5`%zPuNd>@I1;GiyM}ZNVK_ zr@^yN+JhCfVfqIkI_Xu!1y=%vRT{NTd}U`J_HO?a`AIXBtdI+IvNn+Cv~Uo1#Q%UC zYX;9g4p_rj#}>=F?!X7h2>Sc;G9?)N`1vL4{$ zAP_oPYhb4)IJQ~?t|Er?1=v;p7&N0t4tXIJL1C3lkD0gpWl~O%)b6daMDgpl0mjY5zp(x`3M7D)yo2uOWZtL$6ah0bt%aO$fFt3&Lha z{{Mp`-r?=zkbM?oFi|VRfa>r!>nnVVye#h{4b-6yLURE4x7idF5C}!yi=g9htl{?<)Z0qrt5z?^RB*8OFfu3l z!E+lVN!K_!gvIaT7(}1*3;Av4`p@t&aXP})tcO*mJ=_2G?}GjOyA54PYgdO7sfPI3 z;cwCZ&;POuvl+cF|3u1_B8tf?c@6H61wr28ze7jYtHBeb1pxn_ zB&^1>;}N@GC8s2y8C#r?-LD8eOaV1@vwVc*_99JgL65HnC0+!WIC8-_{O@D(3#9G{9D_nEjagz~ghm^l1dJ7q zrWq)?wJdQ^7Mi{TmbnVtT8ODaj3LHvFtQjK-0LbpkSC)NsNW1Q1AKU`Z^x;qRLO*r z%7xlgVGbhyHmW*%IJ*f9rnLOU(cuHR=kbR5X`$m}H#DQn{eZ_|=I<>L6FUN?_4#CK z8;ji|hzkYuZU3XMP7pLFJBxZ7hi1ItwkyY#LdbJ!d<~!)*8{jNkF|gjFJSS+ezcFi z?aI9#VW;&q(ij7)Uo1c813{qqhIf$u?3bu(Y{kT^wt@oU8v*?~pAx*sqS7Uc%93|i znA>N_A*fbgxkT~Xz1&y>CGr1BK8pAGV5rruL|*Lx0kI1z^^;G31X$x$C13Oa8E;+r zGzRt-&XFP*M&4WY;>Q%jI&#`na9_nRv-_c^?n3)L%dw|t6IMO45iB;}Ch0N4MVOpQ zwpb4mUe&U^<{&hyk zms7x9nd5uxWR`G)MG&qn?%e9aR$tT=CqNWlZ?@(4vjuM3Zrwg|vcKdubSE~s3-IN^ zM`tWML}77cx!j+aq|Ep@N>{2I!31_TF9GL`u=001{R@|CpMQ@Fp0U&zRk8uT z3WxCf_3Lr+?1n%Esj$;azDKO4$P&^pnEnoyp4o>5+9JG_-zSZ$iZdQ!i(o*L?LC3l zjOGQYS_Oz?=Rz3xs_|todI{!tEuh$HUmH)%9iSX8lb!|tP0&+!U~SsACt}MBnNqSt zUgXT@Vg|tiWFj?-d2Ok})H4suOs^m>L(bv867o#n>6VMhi)ZYNuZ_0E%~-2lFGJVv z`UfRhu?xhiUrqJssS&Y^#Eg!Q5CIu{=u4nCEfVpU@9wRjV(+j-g{sp)_!XOv zL_o0SNv~b7_X2v5@Z=Y7;_#kl3XPh?`@Tttgn~`3yBxvCSnQg=1dc?y1)k5E;K}XQ zvC?WIsgm6n^z9IZ)Rny9HBvtZ_x+QG@AA5h6s05FtW@2oWMgh=5BC-vjvtExV>1hf4qe002ovPDHLkV1l=M B+}8jA literal 0 HcmV?d00001 diff --git a/art/exported/creatures/7508.png.import b/art/exported/creatures/7508.png.import new file mode 100644 index 0000000..a14d42f --- /dev/null +++ b/art/exported/creatures/7508.png.import @@ -0,0 +1,42 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnw0dw14iyxbh" +path.s3tc="res://.godot/imported/7508.png-555eff33a2cb66622ccca9d7f063522e.s3tc.ctex" +path.etc2="res://.godot/imported/7508.png-555eff33a2cb66622ccca9d7f063522e.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://art/exported/creatures/7508.png" +dest_files=["res://.godot/imported/7508.png-555eff33a2cb66622ccca9d7f063522e.s3tc.ctex", "res://.godot/imported/7508.png-555eff33a2cb66622ccca9d7f063522e.etc2.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=false +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/docs/ATTRIBUTION.md b/docs/ATTRIBUTION.md index 2eac3e5..d24f1ca 100644 --- a/docs/ATTRIBUTION.md +++ b/docs/ATTRIBUTION.md @@ -12,14 +12,14 @@ publicly credited as Voyager and Endeavour and operating collectively as the independent team Woofmeow. - Voyager: co-owner, developer, project director, creator of the game's - current provisional fish artwork and original 3D work except where another - creator is credited, and composer of the original title track + provisional fish placeholder artwork and original 3D work except where + another creator is credited, and composer of the original title track `audio/music/title/as_in_four_wolves.ogg`, dusk/world track `audio/music/world/craft.mp3`, and the synthesized robot animalese tones. - Endeavour: co-owner, developer, and 2D artist. Her incorporated work includes - character pattern/channel-map art, environment and UI art, and item art. - Planned work is not described as incorporated until its files enter the - project. + character pattern/channel-map art, environment and UI art, item art, and + finished fish and creature artwork. Planned work is not described as + incorporated until its files enter the project. - chillnfill: contributor of original 3D models for the character bodies and arms, ears and tails, and multiple world props and decorative assets, including trees and bridges. The contributor requested to be credited as @@ -132,17 +132,18 @@ locations only and must never appear in scenes or resources. ## Project-created artwork and music -The current in-game fish images are provisional artwork by Voyager. Endeavour -is creating replacement fish artwork, but work that has not been incorporated -into this repository is not presented here as part of the game or attributed -as a shipped asset. +Fish entries without finished replacement artwork use provisional placeholder +artwork by Voyager. Incorporated finished fish and creature artwork is by +Endeavour; work that has not entered this repository is not presented here as +part of the game or attributed as a shipped asset. Endeavour's incorporated 2D contributions include the inventory notepad, -environment and UI artwork, item artwork, and character customization pattern -and channel-map artwork. Voyager's incorporated original work includes 3D -assets, the provisional fish artwork, the title and dusk music identified -above, and the robot animalese tones. Specific contributor exceptions are -recorded below and in the in-game credits. +environment and UI artwork, item artwork, finished fish and creature artwork, +and character customization pattern and channel-map artwork. Voyager's +incorporated original work includes 3D assets, the provisional fish +placeholder artwork, the title and dusk music identified above, and the robot +animalese tones. Specific contributor exceptions are recorded below and in the +in-game credits. These credits intentionally describe work by creator and contribution family instead of maintaining a second file-by-file asset catalog. Runtime resources @@ -192,9 +193,10 @@ https://creativecommons.org/licenses/by/3.0/legalcode. ### Endeavour 2D contribution record Endeavour created the incorporated character customization patterns and -channel maps as well as additional UI, environment, and item artwork. The -current provisional fish artwork is not part of this credit. New or replacement -art is added to this record only after it is accepted into the repository. +channel maps as well as additional UI, environment, item, fish, and creature +artwork. Voyager's provisional fish placeholder is not part of this credit. +New or replacement art is added to this record only after it is accepted into +the repository. The exact current filenames and bytes are intentionally not copied into this document. The character appearance resources and Git history are the diff --git a/fish/species/betta_siamese/betta_siamese.tres b/fish/species/betta_siamese/betta_siamese.tres index d8e7ee5..4c9ca3c 100644 --- a/fish/species/betta_siamese/betta_siamese.tres +++ b/fish/species/betta_siamese/betta_siamese.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="99_fish_placeholder"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/7508.png" id="99_fish_placeholder"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/bowfin/bowfin.tres b/fish/species/bowfin/bowfin.tres index b87370e..7b2881f 100644 --- a/fish/species/bowfin/bowfin.tres +++ b/fish/species/bowfin/bowfin.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="4_texture"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/101.png" id="4_texture"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/chromis_blue_green/chromis_blue_green.tres b/fish/species/chromis_blue_green/chromis_blue_green.tres index 17061f8..65f35b4 100644 --- a/fish/species/chromis_blue_green/chromis_blue_green.tres +++ b/fish/species/chromis_blue_green/chromis_blue_green.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="99_fish_placeholder"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/5901.png" id="99_fish_placeholder"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/clownfish_ocellaris/clownfish_ocellaris.tres b/fish/species/clownfish_ocellaris/clownfish_ocellaris.tres index 25bea8f..16566cb 100644 --- a/fish/species/clownfish_ocellaris/clownfish_ocellaris.tres +++ b/fish/species/clownfish_ocellaris/clownfish_ocellaris.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="99_fish_placeholder"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/5702.png" id="99_fish_placeholder"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/crab_brown/crab_brown.tres b/fish/species/crab_brown/crab_brown.tres index 8f31b9c..7dec427 100644 --- a/fish/species/crab_brown/crab_brown.tres +++ b/fish/species/crab_brown/crab_brown.tres @@ -2,7 +2,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] -[ext_resource type="Texture2D" path="res://fish/species/crab_brown/crab_brown.png" id="3_texture"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/3906.png" id="3_texture"] [resource] script = ExtResource("1_fish_data") diff --git a/fish/species/gar_longnose/gar_longnose.tres b/fish/species/gar_longnose/gar_longnose.tres index 28f6e7b..aaabbfe 100644 --- a/fish/species/gar_longnose/gar_longnose.tres +++ b/fish/species/gar_longnose/gar_longnose.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="4_texture"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/103.png" id="4_texture"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/gar_spotted/gar_spotted.tres b/fish/species/gar_spotted/gar_spotted.tres index faf4afc..3405ee9 100644 --- a/fish/species/gar_spotted/gar_spotted.tres +++ b/fish/species/gar_spotted/gar_spotted.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="4_texture"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/106.png" id="4_texture"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/hogfish/hogfish.tres b/fish/species/hogfish/hogfish.tres index bd4373d..0e94a20 100644 --- a/fish/species/hogfish/hogfish.tres +++ b/fish/species/hogfish/hogfish.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="99_fish_placeholder"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/6103.png" id="99_fish_placeholder"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/ladyfish/ladyfish.tres b/fish/species/ladyfish/ladyfish.tres index 55aa31a..57c277c 100644 --- a/fish/species/ladyfish/ladyfish.tres +++ b/fish/species/ladyfish/ladyfish.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="99_fish_placeholder"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/7403.png" id="99_fish_placeholder"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/lungfish_west_african/lungfish_west_african.tres b/fish/species/lungfish_west_african/lungfish_west_african.tres index 342a8f8..f049cff 100644 --- a/fish/species/lungfish_west_african/lungfish_west_african.tres +++ b/fish/species/lungfish_west_african/lungfish_west_african.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="4_texture"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/107.png" id="4_texture"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/mahi_mahi/mahi_mahi.tres b/fish/species/mahi_mahi/mahi_mahi.tres index c7bd6dd..691a52a 100644 --- a/fish/species/mahi_mahi/mahi_mahi.tres +++ b/fish/species/mahi_mahi/mahi_mahi.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="99_fish_placeholder"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/4701.png" id="99_fish_placeholder"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/mullet_striped/mullet_striped.tres b/fish/species/mullet_striped/mullet_striped.tres index 409d7d6..a285ee7 100644 --- a/fish/species/mullet_striped/mullet_striped.tres +++ b/fish/species/mullet_striped/mullet_striped.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="99_fish_placeholder"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/6804.png" id="99_fish_placeholder"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/paddlefish/paddlefish.tres b/fish/species/paddlefish/paddlefish.tres index 80cebe6..498730b 100644 --- a/fish/species/paddlefish/paddlefish.tres +++ b/fish/species/paddlefish/paddlefish.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="4_texture"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/104.png" id="4_texture"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/salmon_atlantic/salmon_atlantic.tres b/fish/species/salmon_atlantic/salmon_atlantic.tres index 122c3e3..1c77325 100644 --- a/fish/species/salmon_atlantic/salmon_atlantic.tres +++ b/fish/species/salmon_atlantic/salmon_atlantic.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" uid="uid://h7hg45b7wmst" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] [ext_resource type="Script" uid="uid://bs7cqi88csolc" path="res://fish/fish_availability.gd" id="3_availability_script"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="4_texture"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/4401.png" id="4_texture"] [sub_resource type="Resource" id="AtlanticSalmonAvailability"] script = ExtResource("3_availability_script") diff --git a/fish/species/sheepshead/sheepshead.tres b/fish/species/sheepshead/sheepshead.tres index 5e3fcc0..d4b8cfa 100644 --- a/fish/species/sheepshead/sheepshead.tres +++ b/fish/species/sheepshead/sheepshead.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="99_fish_placeholder"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/6905.png" id="99_fish_placeholder"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/sturgeon_lake/sturgeon_lake.tres b/fish/species/sturgeon_lake/sturgeon_lake.tres index cf73e25..eef7789 100644 --- a/fish/species/sturgeon_lake/sturgeon_lake.tres +++ b/fish/species/sturgeon_lake/sturgeon_lake.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="4_texture"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/102.png" id="4_texture"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/fish/species/sturgeon_shovelnose/sturgeon_shovelnose.tres b/fish/species/sturgeon_shovelnose/sturgeon_shovelnose.tres index 03434b0..9f02593 100644 --- a/fish/species/sturgeon_shovelnose/sturgeon_shovelnose.tres +++ b/fish/species/sturgeon_shovelnose/sturgeon_shovelnose.tres @@ -3,7 +3,7 @@ [ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] [ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"] [ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"] -[ext_resource type="Texture2D" path="res://art/exported/creatures/fish_placeholder.png" id="4_texture"] +[ext_resource type="Texture2D" path="res://art/exported/creatures/105.png" id="4_texture"] [sub_resource type="Resource" id="Availability"] script = ExtResource("3_availability") diff --git a/tests/fish_catalog_content_validation.gd b/tests/fish_catalog_content_validation.gd index 4a252b0..d7174a8 100644 --- a/tests/fish_catalog_content_validation.gd +++ b/tests/fish_catalog_content_validation.gd @@ -40,6 +40,25 @@ const StarterRegionScene = preload( const SharedFishPlaceholder: Texture2D = preload( "res://art/exported/creatures/fish_placeholder.png" ) +const FINAL_CREATURE_TEXTURE_PATHS: Dictionary[StringName, String] = { + &"bowfin": "res://art/exported/creatures/101.png", + &"sturgeon_lake": "res://art/exported/creatures/102.png", + &"gar_longnose": "res://art/exported/creatures/103.png", + &"paddlefish": "res://art/exported/creatures/104.png", + &"sturgeon_shovelnose": "res://art/exported/creatures/105.png", + &"gar_spotted": "res://art/exported/creatures/106.png", + &"lungfish_west_african": "res://art/exported/creatures/107.png", + &"crab_brown": "res://art/exported/creatures/3906.png", + &"salmon_atlantic": "res://art/exported/creatures/4401.png", + &"mahi_mahi": "res://art/exported/creatures/4701.png", + &"clownfish_ocellaris": "res://art/exported/creatures/5702.png", + &"chromis_blue_green": "res://art/exported/creatures/5901.png", + &"hogfish": "res://art/exported/creatures/6103.png", + &"mullet_striped": "res://art/exported/creatures/6804.png", + &"sheepshead": "res://art/exported/creatures/6905.png", + &"ladyfish": "res://art/exported/creatures/7403.png", + &"betta_siamese": "res://art/exported/creatures/7508.png", +} const ACTIVE_CATALOG_COUNT: int = 313 const INACTIVE_CATALOG_COUNT: int = 3 @@ -186,6 +205,8 @@ func _validate_catalog_and_pools() -> void: var active_count: int = 0 var inactive_count: int = 0 var fishing_count: int = 0 + var final_art_count: int = 0 + var placeholder_fishing_count: int = 0 var catalog_numbers: Dictionary[int, bool] = {} for fish: FishDataType in Catalog.candidates: assert(fish != null and not fish.id.is_empty()) @@ -204,13 +225,24 @@ func _validate_catalog_and_pools() -> void: inactive_count += 1 assert(not fish.is_selectable()) assert(fish.display_texture == null) + if FINAL_CREATURE_TEXTURE_PATHS.has(fish.id): + var expected_texture: Texture2D = load( + FINAL_CREATURE_TEXTURE_PATHS[fish.id] + ) as Texture2D + assert(expected_texture != null) + assert(fish.display_texture == expected_texture) + final_art_count += 1 if fish.collection_method == FishDataType.CollectionMethod.FISHING: fishing_count += 1 assert(fish.active) - assert(fish.display_texture == SharedFishPlaceholder) + if not FINAL_CREATURE_TEXTURE_PATHS.has(fish.id): + assert(fish.display_texture == SharedFishPlaceholder) + placeholder_fishing_count += 1 assert(active_count == ACTIVE_CATALOG_COUNT) assert(inactive_count == INACTIVE_CATALOG_COUNT) assert(fishing_count == FISHING_SPECIES_COUNT) + assert(final_art_count == FINAL_CREATURE_TEXTURE_PATHS.size()) + assert(placeholder_fishing_count == 294) var chum: FishDataType = Catalog.get_fish_by_id(&"salmon_chum") assert(chum != null) assert(chum.get_season_text() == "fall") diff --git a/tools/art/export_creature_art.py b/tools/art/export_creature_art.py new file mode 100644 index 0000000..fb44e52 --- /dev/null +++ b/tools/art/export_creature_art.py @@ -0,0 +1,230 @@ +#!/usr/bin/env python3 +"""Export cataloged creature artwork with consistent transparent margins.""" + +from __future__ import annotations + +import argparse +import hashlib +import re +import sys +import zipfile +import xml.etree.ElementTree as ET +from pathlib import Path + +from PIL import Image + + +TABLE_NAMESPACE = "urn:oasis:names:tc:opendocument:xmlns:table:1.0" +TABLE_ATTRIBUTE = "{%s}" % TABLE_NAMESPACE +NAMESPACES = {"table": TABLE_NAMESPACE} +VALID_EXPORT_SIZES = {64, 128, 256, 512} +SAFE_AREA_RATIO = 0.875 +KNOWN_SOURCE_ALIASES = { + # The delivered filename predates the catalog's authoritative species ID. + "bowfish": "bowfin", +} + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description=( + "Export PNG creature art according to the catalog's recommended " + "canvas size, using alpha-bound trimming and nearest-neighbor scaling." + ) + ) + parser.add_argument("--tracker", required=True, type=Path) + parser.add_argument("--source", required=True, type=Path) + parser.add_argument("--output", required=True, type=Path) + parser.add_argument( + "--skip", + action="append", + default=[], + help="Catalog creature ID or source filename stem to skip; repeat as needed.", + ) + parser.add_argument( + "--dry-run", + action="store_true", + help="Validate and report the batch without writing output files.", + ) + return parser.parse_args() + + +def normalize_name(value: str) -> str: + normalized = value.strip().lower().replace("&", " and ") + normalized = re.sub(r"[^a-z0-9]+", "_", normalized) + return normalized.strip("_") + + +def expanded_row_values(row: ET.Element) -> list[str]: + values: list[str] = [] + for cell in row.findall("table:table-cell", NAMESPACES): + repeat = int( + cell.attrib.get( + TABLE_ATTRIBUTE + "number-columns-repeated", + "1", + ) + ) + values.extend(["".join(cell.itertext()).strip()] * repeat) + return values + + +def load_catalog(tracker_path: Path) -> list[dict[str, str]]: + with zipfile.ZipFile(tracker_path) as archive: + root = ET.fromstring(archive.read("content.xml")) + table = root.find(".//table:table", NAMESPACES) + if table is None: + raise ValueError("tracker does not contain a table") + rows = table.findall("table:table-row", NAMESPACES) + if not rows: + raise ValueError("tracker table is empty") + headers = expanded_row_values(rows[0]) + required_headers = { + "catalog_number", + "display_name", + "id", + "recommended_export_canvas_px", + } + missing_headers = required_headers.difference(headers) + if missing_headers: + raise ValueError( + "tracker is missing required columns: " + + ", ".join(sorted(missing_headers)) + ) + records: list[dict[str, str]] = [] + for row in rows[1:]: + values = expanded_row_values(row) + if not any(values): + continue + record = dict(zip(headers, values)) + if record.get("id", "").strip(): + records.append(record) + return records + + +def catalog_lookup(records: list[dict[str, str]]) -> dict[str, dict[str, str]]: + lookup: dict[str, dict[str, str]] = {} + for record in records: + keys = { + normalize_name(record["id"]), + normalize_name(record["display_name"]), + } + for key in keys: + previous = lookup.get(key) + if previous is not None and previous["id"] != record["id"]: + raise ValueError( + f"ambiguous normalized catalog name {key!r}: " + f"{previous['id']} and {record['id']}" + ) + lookup[key] = record + return lookup + + +def resolve_record( + source_path: Path, + lookup: dict[str, dict[str, str]], +) -> dict[str, str]: + source_key = normalize_name(source_path.stem) + catalog_key = KNOWN_SOURCE_ALIASES.get(source_key, source_key) + record = lookup.get(catalog_key) + if record is None: + raise ValueError( + f"cannot map source {source_path.name!r} to one catalog creature" + ) + return record + + +def normalize_artwork(source_path: Path, canvas_size: int) -> tuple[Image.Image, tuple[int, int, int, int], tuple[int, int]]: + with Image.open(source_path) as source_image: + artwork = source_image.convert("RGBA") + alpha_bounds = artwork.getchannel("A").getbbox() + if alpha_bounds is None: + raise ValueError(f"source {source_path.name!r} is fully transparent") + visible = artwork.crop(alpha_bounds) + safe_long_side = round(canvas_size * SAFE_AREA_RATIO) + scale = safe_long_side / max(visible.width, visible.height) + scaled_size = ( + max(1, round(visible.width * scale)), + max(1, round(visible.height * scale)), + ) + visible = visible.resize(scaled_size, Image.Resampling.NEAREST) + canvas = Image.new("RGBA", (canvas_size, canvas_size), (0, 0, 0, 0)) + offset = ( + (canvas_size - scaled_size[0]) // 2, + (canvas_size - scaled_size[1]) // 2, + ) + canvas.alpha_composite(visible, offset) + return canvas, alpha_bounds, scaled_size + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as source: + for block in iter(lambda: source.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def main() -> int: + arguments = parse_arguments() + records = load_catalog(arguments.tracker) + lookup = catalog_lookup(records) + skip_keys = {normalize_name(value) for value in arguments.skip} + source_paths = sorted(arguments.source.glob("*.png")) + if not source_paths: + raise ValueError(f"no PNG files found under {arguments.source}") + + resolved: list[tuple[Path, dict[str, str]]] = [] + output_names: set[str] = set() + for source_path in source_paths: + record = resolve_record(source_path, lookup) + source_key = normalize_name(source_path.stem) + creature_key = normalize_name(record["id"]) + if source_key in skip_keys or creature_key in skip_keys: + print(f"SKIP {source_path.name} -> {record['id']}") + continue + output_name = f"{record['catalog_number']}.png" + if output_name in output_names: + raise ValueError(f"duplicate output filename {output_name}") + output_names.add(output_name) + resolved.append((source_path, record)) + + if not arguments.dry_run: + arguments.output.mkdir(parents=True, exist_ok=True) + + for source_path, record in resolved: + canvas_size = int(record["recommended_export_canvas_px"]) + if canvas_size not in VALID_EXPORT_SIZES: + raise ValueError( + f"{record['id']} has invalid export size {canvas_size}" + ) + image, alpha_bounds, scaled_size = normalize_artwork( + source_path, + canvas_size, + ) + output_path = arguments.output / f"{record['catalog_number']}.png" + if not arguments.dry_run: + image.save(output_path, format="PNG", optimize=False, compress_level=6) + output_hash = sha256(output_path) + else: + output_hash = "dry-run" + print( + "EXPORT " + f"{source_path.name} -> {output_path.name} " + f"id={record['id']} canvas={canvas_size}x{canvas_size} " + f"alpha_bounds={alpha_bounds} visible={scaled_size[0]}x{scaled_size[1]} " + f"source_sha256={sha256(source_path)} output_sha256={output_hash}" + ) + + print( + f"Complete: {len(resolved)} export(s), " + f"{len(source_paths) - len(resolved)} skipped." + ) + return 0 + + +if __name__ == "__main__": + try: + raise SystemExit(main()) + except (OSError, ValueError, zipfile.BadZipFile) as error: + print(f"ERROR: {error}", file=sys.stderr) + raise SystemExit(1)