From f647a42752fa0c1b7310c0620f058c78d3738b1e Mon Sep 17 00:00:00 2001 From: OverloadedOrama <35376950+OverloadedOrama@users.noreply.github.com> Date: Sun, 18 Aug 2019 12:28:38 +0300 Subject: [PATCH] Initial commit --- .gitattributes | 2 + .github/FUNDING.yml | 1 + .gitignore | 1 + .../.png-05675a12d3f10112da9382ffea612140.md5 | 3 + ...r.png-13de7b2e25322c0fe05acb73bde7971f.md5 | 3 + ....png-13de7b2e25322c0fe05acb73bde7971f.stex | Bin 0 -> 23790 bytes ...0.png-01fadc6686974ab1f9d994c50d1e42a1.md5 | 3 + ...0.png-a6b83c75a67b83f874e6120982b6723d.md5 | 3 + ....png-a6b83c75a67b83f874e6120982b6723d.stex | Bin 0 -> 2282 bytes ...png-b5955c8e7e6eaecd8f24a1732239745d.image | Bin 0 -> 569 bytes ...d.png-b5955c8e7e6eaecd8f24a1732239745d.md5 | 3 + ....png-b5955c8e7e6eaecd8f24a1732239745d.stex | Bin 0 -> 112 bytes ...e.png-cba7a0d7dc311bf5109856c071223323.md5 | 3 + ...r.png-63c5caed334f555f34b58013167136d1.md5 | 3 + ....png-63c5caed334f555f34b58013167136d1.stex | Bin 0 -> 1638 bytes ...t.png-52b75bf5bbdd3ccd544de66c0c6f7825.md5 | 3 + ....png-52b75bf5bbdd3ccd544de66c0c6f7825.stex | Bin 0 -> 1103 bytes ...png-643b5c8878aaf0c84a360796789dae22.image | Bin 0 -> 98 bytes ...d.png-643b5c8878aaf0c84a360796789dae22.md5 | 3 + ....png-643b5c8878aaf0c84a360796789dae22.stex | Bin 0 -> 111 bytes ...o.png-e103c16b45db77894c95005feb7fad3f.md5 | 3 + ...n.png-487276ed1e3a0c39cad0279d744ee560.md5 | 3 + ....png-487276ed1e3a0c39cad0279d744ee560.stex | Bin 0 -> 3480 bytes ...t.png-a0857f5581a7224bc4706f5b5b072c04.md5 | 3 + ....png-a0857f5581a7224bc4706f5b5b072c04.stex | Bin 0 -> 189 bytes ...o.png-32d3b5843c98359b9557fafcc551e353.md5 | 3 + ...k.png-436d9a0bf8e96a20d85e9c9482696318.md5 | 3 + ...o.png-987fe23e74877197b78dca2a42501332.md5 | 3 + ...n.png-0306dc70550a8aeeafa7b550dccd1b4a.md5 | 3 + ...l.png-f45fc5ea6bc3e16a40ce7f3bc56fc30d.md5 | 3 + ....png-f45fc5ea6bc3e16a40ce7f3bc56fc30d.stex | Bin 0 -> 1476 bytes ...t.png-e081bdade321da1277a90c4dc43840cc.md5 | 3 + ....png-e081bdade321da1277a90c4dc43840cc.stex | Bin 0 -> 182 bytes ...e.svg-1ab842341f40f026a62a13ccf7ff4577.md5 | 3 + ....svg-1ab842341f40f026a62a13ccf7ff4577.stex | Bin 0 -> 14352 bytes ...y.png-3d5a982cb56eb81a92736b42a51d4a5b.md5 | 3 + ...y.png-6cdc85baf6ec3016cd63aa20e3a024a2.md5 | 3 + Assets/Fonts/Roboto-Regular.tres | 8 + Assets/Fonts/Roboto-Regular.ttf | Bin 0 -> 162876 bytes Assets/Graphics/Tools/eraser.png | Bin 0 -> 1854 bytes Assets/Graphics/Tools/eraser.png.import | 34 ++ Assets/Graphics/Tools/fill bucket.png | Bin 0 -> 2192 bytes Assets/Graphics/Tools/fill bucket.png.import | 34 ++ Assets/Graphics/Tools/pencil.png | Bin 0 -> 1691 bytes Assets/Graphics/Tools/pencil.png.import | 34 ++ .../Tools/spraying-bottle-outline.svg | 53 +++ .../Tools/spraying-bottle-outline.svg.import | 34 ++ Assets/Graphics/grid.png | Bin 0 -> 87 bytes Assets/Graphics/grid.png.import | 13 + Assets/Graphics/left.png | Bin 0 -> 154 bytes Assets/Graphics/left.png.import | 34 ++ Assets/Graphics/right.png | Bin 0 -> 154 bytes Assets/Graphics/right.png.import | 34 ++ Canvas.tscn | 12 + LICENSE | 21 ++ LayerContainer.tscn | 38 ++ Main Theme.tres | 7 + Main.tscn | 335 ++++++++++++++++++ README.md | 2 + Scripts/CameraMovement.gd | 25 ++ Scripts/Canvas.gd | 233 ++++++++++++ Scripts/Global.gd | 51 +++ Scripts/LayerContainer.gd | 60 ++++ Scripts/Main.gd | 214 +++++++++++ Transparent Background.png | Bin 0 -> 558 bytes Transparent Background.png.import | 13 + default_env.tres | Bin 0 -> 163 bytes export_presets.cfg | 55 +++ icon.png | Bin 0 -> 3433 bytes icon.png.import | 34 ++ project.godot | 103 ++++++ 71 files changed, 1548 insertions(+) create mode 100644 .gitattributes create mode 100644 .github/FUNDING.yml create mode 100644 .gitignore create mode 100644 .import/.png-05675a12d3f10112da9382ffea612140.md5 create mode 100644 .import/Sprite Editor.png-13de7b2e25322c0fe05acb73bde7971f.md5 create mode 100644 .import/Sprite Editor.png-13de7b2e25322c0fe05acb73bde7971f.stex create mode 100644 .import/Transparency500.png-01fadc6686974ab1f9d994c50d1e42a1.md5 create mode 100644 .import/Transparency500.png-a6b83c75a67b83f874e6120982b6723d.md5 create mode 100644 .import/Transparency500.png-a6b83c75a67b83f874e6120982b6723d.stex create mode 100644 .import/Transparent Background.png-b5955c8e7e6eaecd8f24a1732239745d.image create mode 100644 .import/Transparent Background.png-b5955c8e7e6eaecd8f24a1732239745d.md5 create mode 100644 .import/Transparent Background.png-b5955c8e7e6eaecd8f24a1732239745d.stex create mode 100644 .import/eraser-outline.png-cba7a0d7dc311bf5109856c071223323.md5 create mode 100644 .import/eraser.png-63c5caed334f555f34b58013167136d1.md5 create mode 100644 .import/eraser.png-63c5caed334f555f34b58013167136d1.stex create mode 100644 .import/fill bucket.png-52b75bf5bbdd3ccd544de66c0c6f7825.md5 create mode 100644 .import/fill bucket.png-52b75bf5bbdd3ccd544de66c0c6f7825.stex create mode 100644 .import/grid.png-643b5c8878aaf0c84a360796789dae22.image create mode 100644 .import/grid.png-643b5c8878aaf0c84a360796789dae22.md5 create mode 100644 .import/grid.png-643b5c8878aaf0c84a360796789dae22.stex create mode 100644 .import/hello.png-e103c16b45db77894c95005feb7fad3f.md5 create mode 100644 .import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 create mode 100644 .import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex create mode 100644 .import/left.png-a0857f5581a7224bc4706f5b5b072c04.md5 create mode 100644 .import/left.png-a0857f5581a7224bc4706f5b5b072c04.stex create mode 100644 .import/o.png-32d3b5843c98359b9557fafcc551e353.md5 create mode 100644 .import/ok.png-436d9a0bf8e96a20d85e9c9482696318.md5 create mode 100644 .import/ooo.png-987fe23e74877197b78dca2a42501332.md5 create mode 100644 .import/pencil-striped-outlined-tool-in-diagonal-position.png-0306dc70550a8aeeafa7b550dccd1b4a.md5 create mode 100644 .import/pencil.png-f45fc5ea6bc3e16a40ce7f3bc56fc30d.md5 create mode 100644 .import/pencil.png-f45fc5ea6bc3e16a40ce7f3bc56fc30d.stex create mode 100644 .import/right.png-e081bdade321da1277a90c4dc43840cc.md5 create mode 100644 .import/right.png-e081bdade321da1277a90c4dc43840cc.stex create mode 100644 .import/spraying-bottle-outline.svg-1ab842341f40f026a62a13ccf7ff4577.md5 create mode 100644 .import/spraying-bottle-outline.svg-1ab842341f40f026a62a13ccf7ff4577.stex create mode 100644 .import/strelitzia baby.png-3d5a982cb56eb81a92736b42a51d4a5b.md5 create mode 100644 .import/yy.png-6cdc85baf6ec3016cd63aa20e3a024a2.md5 create mode 100644 Assets/Fonts/Roboto-Regular.tres create mode 100644 Assets/Fonts/Roboto-Regular.ttf create mode 100644 Assets/Graphics/Tools/eraser.png create mode 100644 Assets/Graphics/Tools/eraser.png.import create mode 100644 Assets/Graphics/Tools/fill bucket.png create mode 100644 Assets/Graphics/Tools/fill bucket.png.import create mode 100644 Assets/Graphics/Tools/pencil.png create mode 100644 Assets/Graphics/Tools/pencil.png.import create mode 100644 Assets/Graphics/Tools/spraying-bottle-outline.svg create mode 100644 Assets/Graphics/Tools/spraying-bottle-outline.svg.import create mode 100644 Assets/Graphics/grid.png create mode 100644 Assets/Graphics/grid.png.import create mode 100644 Assets/Graphics/left.png create mode 100644 Assets/Graphics/left.png.import create mode 100644 Assets/Graphics/right.png create mode 100644 Assets/Graphics/right.png.import create mode 100644 Canvas.tscn create mode 100644 LICENSE create mode 100644 LayerContainer.tscn create mode 100644 Main Theme.tres create mode 100644 Main.tscn create mode 100644 README.md create mode 100644 Scripts/CameraMovement.gd create mode 100644 Scripts/Canvas.gd create mode 100644 Scripts/Global.gd create mode 100644 Scripts/LayerContainer.gd create mode 100644 Scripts/Main.gd create mode 100644 Transparent Background.png create mode 100644 Transparent Background.png.import create mode 100644 default_env.tres create mode 100644 export_presets.cfg create mode 100644 icon.png create mode 100644 icon.png.import create mode 100644 project.godot diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..dfe077042 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..635ed6f6d --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +custom: https://www.paypal.me/OverloadedOrama \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..245ddbb1d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +Scripts/Old/ \ No newline at end of file diff --git a/.import/.png-05675a12d3f10112da9382ffea612140.md5 b/.import/.png-05675a12d3f10112da9382ffea612140.md5 new file mode 100644 index 000000000..7f0c11ab1 --- /dev/null +++ b/.import/.png-05675a12d3f10112da9382ffea612140.md5 @@ -0,0 +1,3 @@ +source_md5="b8469a8d2b9b7f33cde9c50c882514d3" +dest_md5="611bf34048e600d74fb53c849097c026" + diff --git a/.import/Sprite Editor.png-13de7b2e25322c0fe05acb73bde7971f.md5 b/.import/Sprite Editor.png-13de7b2e25322c0fe05acb73bde7971f.md5 new file mode 100644 index 000000000..91a5f1f3b --- /dev/null +++ b/.import/Sprite Editor.png-13de7b2e25322c0fe05acb73bde7971f.md5 @@ -0,0 +1,3 @@ +source_md5="3f3e12abce4c2177df141c708b02c3cc" +dest_md5="5bb71e82d18a6514c7bec6e2f2996585" + diff --git a/.import/Sprite Editor.png-13de7b2e25322c0fe05acb73bde7971f.stex b/.import/Sprite Editor.png-13de7b2e25322c0fe05acb73bde7971f.stex new file mode 100644 index 0000000000000000000000000000000000000000..3259978668934f1a930148b351f08e7d5e7f997b GIT binary patch literal 23790 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

g>`4m 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 literal 0 HcmV?d00001 diff --git a/.import/Transparency500.png-01fadc6686974ab1f9d994c50d1e42a1.md5 b/.import/Transparency500.png-01fadc6686974ab1f9d994c50d1e42a1.md5 new file mode 100644 index 000000000..2d466955e --- /dev/null +++ b/.import/Transparency500.png-01fadc6686974ab1f9d994c50d1e42a1.md5 @@ -0,0 +1,3 @@ +source_md5="90f1e764a9d0303186411784568ef237" +dest_md5="b40997122ed6d10d1612023e114c7315" + diff --git a/.import/Transparency500.png-a6b83c75a67b83f874e6120982b6723d.md5 b/.import/Transparency500.png-a6b83c75a67b83f874e6120982b6723d.md5 new file mode 100644 index 000000000..2c9cc5680 --- /dev/null +++ b/.import/Transparency500.png-a6b83c75a67b83f874e6120982b6723d.md5 @@ -0,0 +1,3 @@ +source_md5="90f1e764a9d0303186411784568ef237" +dest_md5="5d2507d2ac9dd6d7f8b781cd64e5e4b6" + diff --git a/.import/Transparency500.png-a6b83c75a67b83f874e6120982b6723d.stex b/.import/Transparency500.png-a6b83c75a67b83f874e6120982b6723d.stex new file mode 100644 index 0000000000000000000000000000000000000000..eb3a718657196f4da91b25577fa85b84f91e00cc GIT binary patch literal 2282 zcmZ>F2@d(f$iM)?EDRtZzz$?Goa10%2=H@P=mZkHTvA*>Azn`pmmmfP#xEeu!2}d> z+2V1Rfq`S9r;B4q#hka-4sxnk3b-D8xlmT?$$sX;U7I{M=sj_4e=GEL`h8p0001RZfA*5PDc$28VUda01Zh2R|084ld5RI=Bjg;0K6{tCOOOl=#1-&?3fz<9@um_qclp z2=y{k&5m(E)hr_wkBQmbiWqoB0Nv=vFoF^@^+b9h1JChw4J|`YC=z_$LT$f#b<6LxD;F)0~lbRzA6N|+*mfM(> z43&6_IHIT;wE_><(4$+ZDSj(Jp|LUR1zfAG6ovoJZ~CWT@^=ZkHBi~xaMpi#5!?_=9;oB;l3 z;7V)xD|KMzlk{3kiyQ&H+rY(jOOyA2%N=0gNtX=Ck^D4;LIHR`qi@OqeYZf@s@q$0 zAEysMhPqn10S*p<(IRE9dAvK=-rK)tn*IF%Pt9_fk1OqZ00009a7bBm001r{001r{ z0eGc9b^rhX2XskIMF-;t3l}gcy|{z-0000PbVXQnLvL+uWo~o;Lvm$dbY)~9cWHEJ zAV*0}P*;Ht7XSbN7fD1xR0!8&ICbjG|Ns9P|NsAg`t(@F2@YXmU|;}Y2oPXr1TsQ^IKatA!B!jmu*Z%5r+vfw7FnGH9xvX$T}b!#jRGaHvFzEPrz_9Eiec?>H!@Q z+$xv2AupgT)VS22!WnLNp2{fpBoFB*ID}}VO!9~hiL5s*R1w8)^euafydWB*E%jfC zM5|?nL~$#9*2Zpb7>Nd7v0Wl@)M{fR+2bvDR3f82e+*Hma+&93B~JLOxsm3Fx;X@{ z{Wf~590B7!=$J&-F5gxa#jP;gOR^Hjtn_tz;srFi-5U~#L+*7}lzHCoVQmswTP-pz zUO=ry{w9$)Znepg=Iip?f5@Fi_(ZILlqs5IBr=*^7im6ax@K94PEVUkynqo_XbTSX z-RL-0?HZtY%L`qWv*)s9T4-~k+RUms&T|0JzV;u zS=NW`+h%qdMjHIUvHTIVxUFFBa?N3UmGer|NBNa@iNr29M;6^VEV3;`kM07_vNEjw zvM&}!)&Czst;J@lL7VmN*BNbovd{QnQOtV>DPMD8@c!RhB~yz2Wm|PgbXje38E#l_ zS?G3-db`^WT$-<`9`~`*YfrO2WoQNI;|2p{9D-b?S;~xj^)8 zUo}ZB4*Ihl1*KD8kkw+8tBg^BW=|SbFq?9N$?DMRX-$rwETGzAGeVDWTnvId8@VMM^lDbVze~2d&2gU zZ<8vFb7T0VKd6wxHfy|EFj{S%PpQHYkJ;$R$;7m4OjM2ITC_*zy&Ni?p-u%}x3l2y zoAx1dLMhW^rM;!dX>(K|t4Xug$P2d|s(jQeL(!nBKW;mf`O-yce^DPUAvogtg0NH)1HS`9T$a>B9{5rO$n&kCxo7KN3YmaYej8$K0pTjONNU9%>nANGpGLJY=-U5^S%-=(6 k7XNg5!((QaahZkx0k$R&k1)Zk!2kdN07*qoM6N<$g54z<-~a#s literal 0 HcmV?d00001 diff --git a/.import/fill bucket.png-52b75bf5bbdd3ccd544de66c0c6f7825.md5 b/.import/fill bucket.png-52b75bf5bbdd3ccd544de66c0c6f7825.md5 new file mode 100644 index 000000000..3338ea03a --- /dev/null +++ b/.import/fill bucket.png-52b75bf5bbdd3ccd544de66c0c6f7825.md5 @@ -0,0 +1,3 @@ +source_md5="12b72e84ba20c6659f35eb14d15e384f" +dest_md5="58d1bf2a5d6f24f60937a609877419e1" + diff --git a/.import/fill bucket.png-52b75bf5bbdd3ccd544de66c0c6f7825.stex b/.import/fill bucket.png-52b75bf5bbdd3ccd544de66c0c6f7825.stex new file mode 100644 index 0000000000000000000000000000000000000000..8c3b691b90352e0b788b9b0095d0f6fe3de80b56 GIT binary patch literal 1103 zcmV-V1hD%@L{n5i0000$000000000001yWO0000p1ONa~PDdb#P)1T_NGN z@uvw1HX(#N^n$oS!i9u1;*uZ{72<|O2(Hw>a;HS1T$B_S60(tq5F%8m(u#lW?)JEN zX0p?>bIzGFXXc#Unr|}6X3xy~KEL0*&pYq?%+S!#(9qD((9rPzWTM8lPsEuxHR)#o zzhH0j_c60d(cjP+lZ_1H*Umx756`O zHsdhf!5KNfw}b)v@D)xQU1;^QO5D+XIJ?ieTSQviQgcirWet85cfVh1or^#5Ox;2C zqg7#BQ#b*?i=6Mp=}F($W2V9w#>#r^$18o#+l23hNp1XWj3!h$0*bH+ZwRxF;7c)g zyk<-$jM9Kq{A%2bKkzAT7ACxEg{MQW6iA2tLEL~1_zf>6zh8}C#VT>8?m+9Jn*kR& zTKt5i25=0RkY_-ic=8Qk(S)&1jAiLGpqqHQ8^8)SA!|Tq&UY@1dKth9H6b@_y;?1B_>NnT@izdPuKnJ%yB5Wwg_1h z(raHAwa1Y&sCc4ElogO3FBQC=r6#oTk*G(Ej56Y3Eq=1pfaeBiV@k{&ZG0gn$0N9} z;Ppc@=!BPL0*{MwSStPiE-85ZBpwoz;fG=}y)0>C7RL_|ODQ%gFFs{j)CAwfc3fVt zojmbGb?E^9!g(d)Da^_EMAY&&8@{C88la7C;^A70BkI;6W9rFGNk_l;5~y~M+# z7Sm~4ow2usi8sx{eNVNW~wPFP_N%vT9duAcJV)n$dfZc2P*3AuTv%5J2}Q-jR!i3uJJd7}%!sAucJ=MZCh?%| zIp2A1HviLOkDA^&rYo>{G4oDU-2NcqiS>Ur|I=eZjkSZdcwd;XRdpr|Dju#AOW;le z+IXa*xN=!1Oqf%R31!5?{qn`PMa`gAsxl!JUu44TUtF2PH6`0DO;Ho75>E{AyT#fh`v`o#NB^~w zHQ_1o$jq`vUjmjuCQ-!JXQ86vHtE)vFVXt^|)X>n-(9qD((9p09_z!PQ VW6lX`kmLXW002ovPDHLkV1nQK6!HK7 literal 0 HcmV?d00001 diff --git a/.import/grid.png-643b5c8878aaf0c84a360796789dae22.image b/.import/grid.png-643b5c8878aaf0c84a360796789dae22.image new file mode 100644 index 0000000000000000000000000000000000000000..70deb678d8991b46cb43eee93bf83231e895cfc1 GIT binary patch literal 98 zcmZ>F@$_Y8U|=Z7OYaQubLZuf;sWw`Jw054fHWrvbFcx)2NT%@fRvo4i(`ny)Z~F2@YXqU|;}Y79eI|5MXBnlEFY6;ODN;2_$&Aq_}`wUQZ8~ARrA^&cOy`g=uWv x52VCAT^vI=W+ta3B>Xtf!0Hn)OVI5=DuYfb6N{~(;WnTO22WQ%mvv4FO#oD86kGrR literal 0 HcmV?d00001 diff --git a/.import/hello.png-e103c16b45db77894c95005feb7fad3f.md5 b/.import/hello.png-e103c16b45db77894c95005feb7fad3f.md5 new file mode 100644 index 000000000..436041223 --- /dev/null +++ b/.import/hello.png-e103c16b45db77894c95005feb7fad3f.md5 @@ -0,0 +1,3 @@ +source_md5="327bd47a99785cc67d3b563e11e15386" +dest_md5="f762a141beffeb685bedf56872c571fc" + diff --git a/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 new file mode 100644 index 000000000..f75f5429c --- /dev/null +++ b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 @@ -0,0 +1,3 @@ +source_md5="8dd9ff1eebf38898a54579d8c01b0a88" +dest_md5="da70afec3c66d4e872db67f808e12edb" + diff --git a/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex new file mode 100644 index 0000000000000000000000000000000000000000..46e6d2aa00f753b8d41a94d2b00c13c9954b627c GIT binary patch literal 3480 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 literal 0 HcmV?d00001 diff --git a/Assets/Graphics/Tools/eraser.png b/Assets/Graphics/Tools/eraser.png new file mode 100644 index 0000000000000000000000000000000000000000..2b51e2761ad7f828eed983a308d68adcb599fd54 GIT binary patch literal 1854 zcmZ`)S6GvY7W|hD21x)xK!`z6kg^m*3sq?WLhp5{hM=H?77`?&3n*)l(2GhF=_E)A zy>|qpgLD=}y27q5L_o=nkN068&dfJ+&iUqX$W|6cT%0gY006j*(I^`h>--!J5DNj% zCVLiwZtI%s0zh>l=V+7AKRqKIz^28NHbDj`i|HP4}lVsk82!3m$ee7KJP!(F)6qln;kl*nk`b+ zK6Hd+zqae@l%x(@7J}0Y80;`vPFeb15YBtKNBzOe->(LB+OwB9VjN02o3&;ywvIxx zer1{$my_+Zd%q_&D(+1?1%AJb&s^gZCXsd_lM;>Epu|W)A$ZwM|C+j}2lOEJ>NTk9 zoCuWU7@+&ZtzG06v1Ad_+Mq1FonfVN>98p}pkx7?3wigjOU+y1nLO~ALd4DD(X2$WBBKtNegExLig)^mNltnR#zjKDihKIP7!zy0T zq_|I$@_2NHXE1Ad{4}?1+uTeveAZiUY?Yi}*CnuFbY^KqeAlY$>-@%%6rU!os!k{> zt?4xquQQz&Q4evW!Hm97#Pmsy)ZB#sg`^K#O|G6KtecI0c-KnI^yOZoW;?=f4prjO z;)EvYnytNLgZjr?L06;bH0a%qEy$7ef&ckwmwUyqTIYRtw}~CelUl}w-qwahCRHA~ z!X#0>u@YA)ZywJQf%9<>h04P?vw=vQtOS@>;XipF!~OJ~Q1?t9eQ8-94k zb?Lh3_?^(wGIxAMv!0WsXn0BGvqC}ekNJew$uj;yKZT+6{!$(K0OdEe(_M3iKOHRn zCLbt9`8^%spb#p`CZ20gyuKne?@!?}+-S?$gK^n>i%~hu;jl1m>W+5phTnTd#tMnb zJhm8fsgMg`^vEi>z!q=#oD4P?3-mW#G22eGLwjYZxQ||}K#ob;zkgzM5C75Ib74lJ z+^|JZWZm_7DLz(1AZ%u|bxig1uN#kSiU&KDXNY}y$uD0rX_k_?fW$<#!r=z-KdRri$ z4J{y7VwxWDNn30EdXc`29gLZBrP)s^sh`} zWBwATj0gua--h}nO}O|NXCU=p&XwO@dkh@frMALw^kc^G!rCqjGw-;tSp|Wn?EER_ z6Y5+2R-Zeqp;KJ@fHD4}kJ;S1!K*af__mt~)JyOrnj+x*tg5(%H*msxd*QJfm|!f6 z07Zm?x*S4PPC>;EfzVJvY9N$l5Q-WIgzi#R{Qo`p2YCDX-2d+fL=*?BzX0K%3AO<~ oc%oM@79bLd^1iscAsDYftb9Q5?W{d580!cyHn2dw*7J=1A1j(-W&i*H literal 0 HcmV?d00001 diff --git a/Assets/Graphics/Tools/eraser.png.import b/Assets/Graphics/Tools/eraser.png.import new file mode 100644 index 000000000..8ded836b7 --- /dev/null +++ b/Assets/Graphics/Tools/eraser.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/eraser.png-63c5caed334f555f34b58013167136d1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/Tools/eraser.png" +dest_files=[ "res://.import/eraser.png-63c5caed334f555f34b58013167136d1.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Assets/Graphics/Tools/fill bucket.png b/Assets/Graphics/Tools/fill bucket.png new file mode 100644 index 0000000000000000000000000000000000000000..19457168f1909e575599814e2ece1c305969ed7a GIT binary patch literal 2192 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assets/Graphics/Tools/spraying-bottle-outline.svg.import b/Assets/Graphics/Tools/spraying-bottle-outline.svg.import new file mode 100644 index 000000000..f4e1a7ba5 --- /dev/null +++ b/Assets/Graphics/Tools/spraying-bottle-outline.svg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spraying-bottle-outline.svg-1ab842341f40f026a62a13ccf7ff4577.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/Tools/spraying-bottle-outline.svg" +dest_files=[ "res://.import/spraying-bottle-outline.svg-1ab842341f40f026a62a13ccf7ff4577.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Assets/Graphics/grid.png b/Assets/Graphics/grid.png new file mode 100644 index 0000000000000000000000000000000000000000..859fb8c10c7fb78591a0570f086c0dadfee02ce5 GIT binary patch literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Va-J@ZAre!QQxXz>oOfVRSn|SN j*l-z7q-zh4ON%hWObr(9mOh0YK$Q%hu6{1-oD!M<{mc}i literal 0 HcmV?d00001 diff --git a/Assets/Graphics/grid.png.import b/Assets/Graphics/grid.png.import new file mode 100644 index 000000000..dba82b074 --- /dev/null +++ b/Assets/Graphics/grid.png.import @@ -0,0 +1,13 @@ +[remap] + +importer="image" +type="Image" +path="res://.import/grid.png-643b5c8878aaf0c84a360796789dae22.image" + +[deps] + +source_file="res://Assets/Graphics/grid.png" +dest_files=[ "res://.import/grid.png-643b5c8878aaf0c84a360796789dae22.image" ] + +[params] + diff --git a/Assets/Graphics/left.png b/Assets/Graphics/left.png new file mode 100644 index 0000000000000000000000000000000000000000..a8c24bfd9fa4398ca4a71584fe0e49027d8aa104 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`iJmTwAr`%BCmZq|P~c$TPmjO6 zcYXPH(|2W?JQoX1FfuF9B@LBxIdt_Gi-nBRJ>4`UfIx z6F7KI8PBqAc)+2|scWe8^Sg4U&~?MNU1yp4pD-q{DBWpuo1+7?jKR~@&t;ucLK6V; CC^Lls literal 0 HcmV?d00001 diff --git a/Assets/Graphics/left.png.import b/Assets/Graphics/left.png.import new file mode 100644 index 000000000..73d371de1 --- /dev/null +++ b/Assets/Graphics/left.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/left.png-a0857f5581a7224bc4706f5b5b072c04.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/left.png" +dest_files=[ "res://.import/left.png-a0857f5581a7224bc4706f5b5b072c04.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Assets/Graphics/right.png b/Assets/Graphics/right.png new file mode 100644 index 0000000000000000000000000000000000000000..2c423e6abe9b2abb09c012c27de513491c2e0978 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`iJmTwAr`&KDF+ziq{{!aZ#;TF z%-~Vb@fL5U>4_L!W^F#q@Nu(f zPl_~yH$PDIoEZgaLNObi1HFz+)9y552%pBr;N+!r;EaO(dZ1+tp00i_>zopr051D7 Ay#N3J literal 0 HcmV?d00001 diff --git a/Assets/Graphics/right.png.import b/Assets/Graphics/right.png.import new file mode 100644 index 000000000..93052d499 --- /dev/null +++ b/Assets/Graphics/right.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/right.png-e081bdade321da1277a90c4dc43840cc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Graphics/right.png" +dest_files=[ "res://.import/right.png-e081bdade321da1277a90c4dc43840cc.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Canvas.tscn b/Canvas.tscn new file mode 100644 index 000000000..c22336034 --- /dev/null +++ b/Canvas.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Scripts/Canvas.gd" type="Script" id=1] + +[node name="Canvas" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Timer" type="Timer" parent="."] +wait_time = 0.2 +one_shot = true +autostart = true +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..2825d3556 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 OverloadedOrama + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LayerContainer.tscn b/LayerContainer.tscn new file mode 100644 index 000000000..444a9dd64 --- /dev/null +++ b/LayerContainer.tscn @@ -0,0 +1,38 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Scripts/LayerContainer.gd" type="Script" id=1] + +[node name="LayerContainer" type="PanelContainer"] +margin_top = 42.0 +margin_right = 159.0 +margin_bottom = 88.0 +script = ExtResource( 1 ) + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +margin_left = 7.0 +margin_top = 7.0 +margin_right = 152.0 +margin_bottom = 39.0 + +[node name="VisibilityButton" type="Button" parent="HBoxContainer"] +margin_right = 20.0 +margin_bottom = 32.0 +text = "V" + +[node name="TextureRect" type="TextureRect" parent="HBoxContainer"] +margin_left = 24.0 +margin_right = 56.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +expand = true + +[node name="Label" type="Label" parent="HBoxContainer"] +margin_left = 60.0 +margin_top = 9.0 +margin_right = 106.0 +margin_bottom = 23.0 +text = "Layer 0" +align = 1 +[connection signal="button_down" from="HBoxContainer/VisibilityButton" to="." method="_on_VisibilityButton_button_down"] +[connection signal="button_up" from="HBoxContainer/VisibilityButton" to="." method="_on_VisibilityButton_button_up"] +[connection signal="pressed" from="HBoxContainer/VisibilityButton" to="." method="_on_VisibilityButton_pressed"] diff --git a/Main Theme.tres b/Main Theme.tres new file mode 100644 index 000000000..43a35d07f --- /dev/null +++ b/Main Theme.tres @@ -0,0 +1,7 @@ +[gd_resource type="Theme" load_steps=2 format=2] + +[sub_resource type="StyleBoxFlat" id=1] +bg_color = Color( 0.239216, 0.231373, 0.270588, 1 ) + +[resource] +PanelContainer/styles/panel = SubResource( 1 ) diff --git a/Main.tscn b/Main.tscn new file mode 100644 index 000000000..c55ad1a84 --- /dev/null +++ b/Main.tscn @@ -0,0 +1,335 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://Scripts/Main.gd" type="Script" id=1] +[ext_resource path="res://Main Theme.tres" type="Theme" id=2] +[ext_resource path="res://Assets/Graphics/left.png" type="Texture" id=3] +[ext_resource path="res://Assets/Graphics/right.png" type="Texture" id=4] +[ext_resource path="res://Canvas.tscn" type="PackedScene" id=5] +[ext_resource path="res://Scripts/CameraMovement.gd" type="Script" id=6] + +[node name="Control" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 1 ) + +[node name="UI" type="HBoxContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +size_flags_horizontal = 3 + +[node name="ToolPanel" type="Panel" parent="UI"] +margin_right = 320.0 +margin_bottom = 600.0 +rect_min_size = Vector2( 320, 0 ) + +[node name="VBoxContainer" type="VBoxContainer" parent="UI/ToolPanel"] +margin_right = 40.0 +margin_bottom = 44.0 + +[node name="MenuItems" type="HBoxContainer" parent="UI/ToolPanel/VBoxContainer"] +margin_right = 166.0 +margin_bottom = 20.0 + +[node name="FileMenu" type="MenuButton" parent="UI/ToolPanel/VBoxContainer/MenuItems"] +margin_right = 35.0 +margin_bottom = 20.0 +theme = ExtResource( 2 ) +text = "File" + +[node name="EditMenu" type="MenuButton" parent="UI/ToolPanel/VBoxContainer/MenuItems"] +margin_left = 39.0 +margin_right = 75.0 +margin_bottom = 20.0 +theme = ExtResource( 2 ) +text = "Edit" + +[node name="ToolsContainer" type="HBoxContainer" parent="UI/ToolPanel/VBoxContainer"] +margin_top = 24.0 +margin_right = 166.0 +margin_bottom = 44.0 + +[node name="Pencil" type="Button" parent="UI/ToolPanel/VBoxContainer/ToolsContainer"] +margin_right = 51.0 +margin_bottom = 20.0 +button_mask = 3 +text = "Pencil" + +[node name="LeftIndicator" type="Sprite" parent="UI/ToolPanel/VBoxContainer/ToolsContainer/Pencil"] +z_index = 1 +texture = ExtResource( 3 ) +centered = false +offset = Vector2( 0, -10 ) + +[node name="Eraser" type="Button" parent="UI/ToolPanel/VBoxContainer/ToolsContainer"] +margin_left = 55.0 +margin_right = 106.0 +margin_bottom = 20.0 +button_mask = 3 +text = "Eraser" + +[node name="RightIndicator" type="Sprite" parent="UI/ToolPanel/VBoxContainer/ToolsContainer/Eraser"] +z_index = 1 +texture = ExtResource( 4 ) +centered = false +offset = Vector2( 35, -10 ) + +[node name="Fill" type="Button" parent="UI/ToolPanel/VBoxContainer/ToolsContainer"] +margin_left = 110.0 +margin_right = 166.0 +margin_bottom = 20.0 +button_mask = 3 +text = "Bucket" + +[node name="ColorPickers" type="HBoxContainer" parent="UI/ToolPanel/VBoxContainer"] +margin_top = 48.0 +margin_right = 166.0 +margin_bottom = 80.0 + +[node name="LeftColorPickerButton" type="ColorPickerButton" parent="UI/ToolPanel/VBoxContainer/ColorPickers"] +margin_right = 32.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +size_flags_horizontal = 0 + +[node name="RightColorPickerButton" type="ColorPickerButton" parent="UI/ToolPanel/VBoxContainer/ColorPickers"] +margin_left = 36.0 +margin_right = 68.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +size_flags_horizontal = 0 + +[node name="ViewportContainer" type="ViewportContainer" parent="UI"] +editor/display_folded = true +margin_left = 324.0 +margin_right = 860.0 +margin_bottom = 600.0 +size_flags_horizontal = 3 +stretch = true + +[node name="Viewport" type="Viewport" parent="UI/ViewportContainer"] +size = Vector2( 536, 600 ) +handle_input_locally = false +render_target_update_mode = 3 + +[node name="Canvas" parent="UI/ViewportContainer/Viewport" instance=ExtResource( 5 )] + +[node name="Camera2D" type="Camera2D" parent="UI/ViewportContainer/Viewport"] +current = true +zoom = Vector2( 0.15, 0.15 ) +script = ExtResource( 6 ) + +[node name="LayerPanel" type="Panel" parent="UI"] +margin_left = 864.0 +margin_right = 1024.0 +margin_bottom = 600.0 +rect_min_size = Vector2( 160, 0 ) + +[node name="ScrollContainer" type="ScrollContainer" parent="UI/LayerPanel"] +margin_right = 160.0 +margin_bottom = 600.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="VBoxLayerContainer" type="VBoxContainer" parent="UI/LayerPanel/ScrollContainer"] +margin_right = 160.0 +margin_bottom = 38.0 +size_flags_horizontal = 3 + +[node name="LayerLabel" type="Label" parent="UI/LayerPanel/ScrollContainer/VBoxLayerContainer"] +margin_right = 160.0 +margin_bottom = 14.0 +size_flags_horizontal = 3 +size_flags_vertical = 0 +text = "Layers" +align = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="UI/LayerPanel/ScrollContainer/VBoxLayerContainer"] +margin_top = 18.0 +margin_right = 160.0 +margin_bottom = 38.0 + +[node name="AddLayerButton" type="Button" parent="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer"] +margin_right = 20.0 +margin_bottom = 20.0 +text = "+" + +[node name="RemoveLayerButton" type="Button" parent="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer"] +margin_left = 24.0 +margin_right = 44.0 +margin_bottom = 20.0 +disabled = true +text = "X" + +[node name="MoveUpLayer" type="Button" parent="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer"] +margin_left = 48.0 +margin_right = 67.0 +margin_bottom = 20.0 +disabled = true +text = "^" + +[node name="MoveDownLayer" type="Button" parent="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer"] +margin_left = 71.0 +margin_right = 90.0 +margin_bottom = 20.0 +disabled = true +text = "v" + +[node name="CloneLayer" type="Button" parent="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer"] +margin_left = 94.0 +margin_right = 118.0 +margin_bottom = 20.0 +text = "Cl" + +[node name="MergeDownLayer" type="Button" parent="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer"] +margin_left = 122.0 +margin_right = 146.0 +margin_bottom = 20.0 +disabled = true +text = "M" + +[node name="CreateNewImage" type="ConfirmationDialog" parent="."] +editor/display_folded = true +margin_right = 200.0 +margin_bottom = 70.0 + +[node name="VBoxContainer" type="VBoxContainer" parent="CreateNewImage"] +margin_left = 8.0 +margin_top = 8.0 +margin_right = 192.0 +margin_bottom = 78.0 + +[node name="ImageSize" type="Label" parent="CreateNewImage/VBoxContainer"] +margin_right = 184.0 +margin_bottom = 14.0 +text = "Image Size" + +[node name="WidthCont" type="HBoxContainer" parent="CreateNewImage/VBoxContainer"] +margin_top = 18.0 +margin_right = 184.0 +margin_bottom = 42.0 + +[node name="WidthLabel" type="Label" parent="CreateNewImage/VBoxContainer/WidthCont"] +margin_top = 5.0 +margin_right = 46.0 +margin_bottom = 19.0 +text = "Width: " + +[node name="LineEdit" type="LineEdit" parent="CreateNewImage/VBoxContainer/WidthCont"] +margin_left = 50.0 +margin_right = 108.0 +margin_bottom = 24.0 +text = "64" + +[node name="HeightCont" type="HBoxContainer" parent="CreateNewImage/VBoxContainer"] +margin_top = 46.0 +margin_right = 184.0 +margin_bottom = 70.0 + +[node name="Height" type="Label" parent="CreateNewImage/VBoxContainer/HeightCont"] +margin_top = 5.0 +margin_right = 46.0 +margin_bottom = 19.0 +text = "Height:" + +[node name="LineEdit" type="LineEdit" parent="CreateNewImage/VBoxContainer/HeightCont"] +margin_left = 50.0 +margin_right = 108.0 +margin_bottom = 24.0 +text = "64" + +[node name="OpenSprite" type="FileDialog" parent="."] +margin_right = 515.0 +margin_bottom = 348.0 +window_title = "Open a File" +resizable = true +mode = 0 +access = 2 +filters = PoolStringArray( "*jpg, *.png ; JPG, PNG Images" ) +current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" +current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" + +[node name="SaveSprite" type="FileDialog" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -512.0 +margin_top = -300.0 +margin_right = 3.0 +margin_bottom = 48.0 +window_title = "Create a new image" +resizable = true +access = 2 +filters = PoolStringArray( "*.png ; PNG Image" ) +current_dir = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama" +current_path = "C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Pixelorama/" + +[node name="ScaleImage" type="ConfirmationDialog" parent="."] +editor/display_folded = true +margin_right = 200.0 +margin_bottom = 114.0 + +[node name="VBoxContainer" type="VBoxContainer" parent="ScaleImage"] +margin_left = 8.0 +margin_top = 8.0 +margin_right = 192.0 +margin_bottom = 78.0 + +[node name="ImageSize" type="Label" parent="ScaleImage/VBoxContainer"] +margin_right = 184.0 +margin_bottom = 14.0 +text = "Image Size" + +[node name="WidthCont" type="HBoxContainer" parent="ScaleImage/VBoxContainer"] +margin_top = 18.0 +margin_right = 184.0 +margin_bottom = 42.0 + +[node name="WidthLabel" type="Label" parent="ScaleImage/VBoxContainer/WidthCont"] +margin_top = 5.0 +margin_right = 46.0 +margin_bottom = 19.0 +text = "Width: " + +[node name="LineEdit" type="LineEdit" parent="ScaleImage/VBoxContainer/WidthCont"] +margin_left = 50.0 +margin_right = 108.0 +margin_bottom = 24.0 +text = "64" + +[node name="HeightCont" type="HBoxContainer" parent="ScaleImage/VBoxContainer"] +margin_top = 46.0 +margin_right = 184.0 +margin_bottom = 70.0 + +[node name="Height" type="Label" parent="ScaleImage/VBoxContainer/HeightCont"] +margin_top = 5.0 +margin_right = 46.0 +margin_bottom = 19.0 +text = "Height:" + +[node name="LineEdit" type="LineEdit" parent="ScaleImage/VBoxContainer/HeightCont"] +margin_left = 50.0 +margin_right = 108.0 +margin_bottom = 24.0 +text = "64" +[connection signal="popup_closed" from="UI/ToolPanel/VBoxContainer/ColorPickers/LeftColorPickerButton" to="." method="_can_draw_true"] +[connection signal="pressed" from="UI/ToolPanel/VBoxContainer/ColorPickers/LeftColorPickerButton" to="." method="_can_draw_false"] +[connection signal="popup_closed" from="UI/ToolPanel/VBoxContainer/ColorPickers/RightColorPickerButton" to="." method="_can_draw_true"] +[connection signal="pressed" from="UI/ToolPanel/VBoxContainer/ColorPickers/RightColorPickerButton" to="." method="_can_draw_false"] +[connection signal="mouse_entered" from="UI/ViewportContainer" to="." method="_on_ViewportContainer_mouse_entered"] +[connection signal="mouse_exited" from="UI/ViewportContainer" to="." method="_on_ViewportContainer_mouse_exited"] +[connection signal="pressed" from="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer/AddLayerButton" to="." method="_on_AddLayerButton_pressed"] +[connection signal="pressed" from="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer/RemoveLayerButton" to="." method="_on_RemoveLayerButton_pressed"] +[connection signal="pressed" from="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer/MoveUpLayer" to="." method="_on_MoveUpLayer_pressed"] +[connection signal="pressed" from="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer/MoveDownLayer" to="." method="_on_MoveDownLayer_pressed"] +[connection signal="pressed" from="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer/CloneLayer" to="." method="_on_CloneLayer_pressed"] +[connection signal="pressed" from="UI/LayerPanel/ScrollContainer/VBoxLayerContainer/HBoxContainer/MergeDownLayer" to="." method="_on_MergeLayer_pressed"] +[connection signal="confirmed" from="CreateNewImage" to="." method="_on_CreateNewImage_confirmed"] +[connection signal="popup_hide" from="CreateNewImage" to="." method="_can_draw_true"] +[connection signal="file_selected" from="OpenSprite" to="." method="_on_OpenSprite_file_selected"] +[connection signal="popup_hide" from="OpenSprite" to="." method="_on_OpenSprite_popup_hide"] +[connection signal="file_selected" from="SaveSprite" to="." method="_on_SaveSprite_file_selected"] +[connection signal="popup_hide" from="SaveSprite" to="." method="_can_draw_true"] +[connection signal="confirmed" from="ScaleImage" to="." method="_on_ScaleImage_confirmed"] +[connection signal="popup_hide" from="ScaleImage" to="." method="_can_draw_true"] diff --git a/README.md b/README.md new file mode 100644 index 000000000..7d6128f47 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Pixelorama + A free & open-source 2D sprite editor, made with Godot Engine! diff --git a/Scripts/CameraMovement.gd b/Scripts/CameraMovement.gd new file mode 100644 index 000000000..99b1fb3d1 --- /dev/null +++ b/Scripts/CameraMovement.gd @@ -0,0 +1,25 @@ +extends Camera2D + +var zoom_min := Vector2(0.005, 0.005) +var zoom_max := Vector2(0.8, 0.8) + +var drag := false + +func _input(event) -> void: + if Global.can_draw && Global.has_focus: + if event.is_action_pressed("camera_drag"): + drag = true + elif event.is_action_released("camera_drag"): + drag = false + elif event.is_action_pressed("zoom_in"): # Wheel Up Event + zoom_camera(-1) + elif event.is_action_pressed("zoom_out"): # Wheel Down Event + zoom_camera(1) + elif event is InputEventMouseMotion && drag: + offset = offset - event.relative * zoom + +# Zoom Camera +func zoom_camera(dir : int) -> void: + var zoom_margin = zoom * dir / 10 + if zoom + zoom_margin > zoom_min && zoom + zoom_margin < zoom_max: + zoom += zoom_margin \ No newline at end of file diff --git a/Scripts/Canvas.gd b/Scripts/Canvas.gd new file mode 100644 index 000000000..0802cd85c --- /dev/null +++ b/Scripts/Canvas.gd @@ -0,0 +1,233 @@ +extends Node2D +class_name Canvas + +var layers := [] +var current_layer_index := 0 +var trans_background : ImageTexture +var current_sprite : Image +var location := Vector2.ZERO +var size := Vector2(64, 64) + +var previous_mouse_pos := Vector2.ZERO +var mouse_inside_canvas := false #used for undo +var sprite_changed_this_frame := false #for optimization purposes +var is_making_line := false +var line_2d : Line2D +var draw_grid := false + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + Global.can_draw = false + #Background + trans_background = ImageTexture.new() + trans_background.create_from_image(load("res://Transparent Background.png"), 0) + + #The sprite itself + if !current_sprite: + current_sprite = Image.new() + current_sprite.create(size.x, size.y, false, Image.FORMAT_RGBA8) + + current_sprite.lock() + var tex := ImageTexture.new() + tex.create_from_image(current_sprite, 0) + + #Store [Image, ImageTexture, Layer Name, Visibity boolean] + layers.append([current_sprite, tex, "Layer 0", true]) + + generate_layer_panels() + #Set camera offset to the center of canvas + $"../Camera2D".offset = size / 2 + #Set camera zoom based on the sprite size + var bigger = max(size.x, size.y) + $"../Camera2D".zoom_max = Vector2(bigger, bigger) * 0.01 + $"../Camera2D".zoom = Vector2(bigger, bigger) * 0.002 + +# warning-ignore:unused_argument +func _process(delta) -> void: + sprite_changed_this_frame = false + update() + var mouse_pos := get_local_mouse_position() - location + var current_mouse_button := "None" + var current_action := "None" + if Input.is_mouse_button_pressed(BUTTON_LEFT): + current_mouse_button = "L" + current_action = Global.current_left_tool + elif Input.is_mouse_button_pressed(BUTTON_RIGHT): + current_mouse_button = "R" + current_action = Global.current_right_tool + + + if !point_in_rectangle(mouse_pos, location, location + size): + if !Input.is_mouse_button_pressed(BUTTON_LEFT) && !Input.is_mouse_button_pressed(BUTTON_RIGHT): + if mouse_inside_canvas: + mouse_inside_canvas = false + match current_action: + "Pencil": + var current_color : Color + if current_mouse_button == "L": + current_color = Global.left_color_picker.color + elif current_mouse_button == "R": + current_color = Global.right_color_picker.color + pencil_and_eraser(mouse_pos, current_color) + "Eraser": + pencil_and_eraser(mouse_pos, Color(0, 0, 0, 0)) + "Fill": + if point_in_rectangle(mouse_pos, location, location + size) && Global.can_draw && Global.has_focus: + var current_color : Color + if current_mouse_button == "L": + current_color = Global.left_color_picker.color + elif current_mouse_button == "R": + current_color = Global.right_color_picker.color + flood_fill(mouse_pos, layers[current_layer_index][0].get_pixelv(mouse_pos), current_color) + + if !is_making_line: + previous_mouse_pos = mouse_pos + previous_mouse_pos.x = clamp(previous_mouse_pos.x, location.x, location.x + size.x) + previous_mouse_pos.y = clamp(previous_mouse_pos.y, location.y, location.y + size.y) + else: + line_2d.set_point_position(1, mouse_pos) + + if sprite_changed_this_frame: + update_texture(current_layer_index) + +func update_texture(layer_index : int): + layers[layer_index][1].create_from_image(layers[layer_index][0], 0) + get_layer_container(layer_index).get_child(0).get_child(1).texture = layers[layer_index][1] + +func get_layer_container(layer_index : int) -> PanelContainer: + for container in Global.vbox_layer_container.get_children(): + if container is PanelContainer && container.i == layer_index: + return container + return null + +func _draw() -> void: + draw_texture_rect(trans_background, Rect2(location, size), true) + #for texture in layer_textures: + for texture in layers: + if texture[3]: #if it's visible + draw_texture(texture[1], location) + + #Draw grid (causes lag - unused. If you wanna test it just set draw_grid = true) + if draw_grid: + for x in size.x: + for y in size.y: + draw_rect(Rect2(location.x + x, location.y + y, 1, 1), Color.black, false) + + #Draw rectangle to indicate the pixel currently being hovered on + var mouse_pos := get_local_mouse_position() - location + if point_in_rectangle(mouse_pos, location, location + size): + mouse_pos = mouse_pos.floor() + draw_rect(Rect2(mouse_pos.x, mouse_pos.y, 1, 1), Color.red, false) + +func generate_layer_panels() -> void: + for child in Global.vbox_layer_container.get_children(): + if child is PanelContainer: + child.queue_free() + + current_layer_index = layers.size() - 1 + if layers.size() == 1: + Global.remove_layer_button.disabled = true + else: + Global.remove_layer_button.disabled = false + + for i in range(layers.size() -1, -1, -1): + var layer_container = load("res://LayerContainer.tscn").instance() + #layer_names.insert(i, "Layer %s" % i) + layers[i][2] = "Layer %s" % i + layer_container.i = i + #layer_container.get_child(0).get_child(2).text = layer_names[i] + layer_container.get_child(0).get_child(2).text = layers[i][2] + layers[i][3] = true #set visible + layer_container.get_child(0).get_child(1).texture = layers[i][1] + Global.vbox_layer_container.add_child(layer_container) + +func pencil_and_eraser(mouse_pos : Vector2, color : Color) -> void: + if Input.is_key_pressed(KEY_SHIFT): + if !is_making_line: + line_2d = Line2D.new() + line_2d.width = 0.5 + line_2d.default_color = Color.darkgray + line_2d.add_point(previous_mouse_pos) + line_2d.add_point(mouse_pos) + add_child(line_2d) + is_making_line = true + else: + if is_making_line: + fill_gaps(mouse_pos, color) + is_making_line = false + line_2d.queue_free() + else: + if point_in_rectangle(mouse_pos, location, location + size): + mouse_inside_canvas = true + #Draw + draw_pixel(mouse_pos, color) + fill_gaps(mouse_pos, color) #Fill the gaps + #If mouse is not inside bounds but it used to be, fill the gaps + elif point_in_rectangle(previous_mouse_pos, location, location + size): + fill_gaps(mouse_pos, color) + +func draw_pixel(pos : Vector2, color : Color) -> void: + if layers[current_layer_index][0].get_pixelv(pos) != color: #don't draw the same pixel over and over + if Global.can_draw && Global.has_focus: + #sprite.lock() + layers[current_layer_index][0].set_pixelv(pos, color) + #sprite.unlock() + sprite_changed_this_frame = true + +func point_in_rectangle(p : Vector2, coord1 : Vector2, coord2 : Vector2) -> bool: + return p.x > coord1.x && p.y > coord1.y && p.x < coord2.x && p.y < coord2.y + +#Bresenham's Algorithm +#Thanks to https://godotengine.org/qa/35276/tile-based-line-drawing-algorithm-efficiency +func fill_gaps(mouse_pos : Vector2, color : Color) -> void: + var previous_mouse_pos_floored = previous_mouse_pos.floor() + var mouse_pos_floored = mouse_pos.floor() + mouse_pos_floored.x = clamp(mouse_pos_floored.x, location.x - 1, location.x + size.x) + mouse_pos_floored.y = clamp(mouse_pos_floored.y, location.y - 1, location.y + size.y) + var dx := int(abs(mouse_pos_floored.x - previous_mouse_pos_floored.x)) + var dy := int(-abs(mouse_pos_floored.y - previous_mouse_pos_floored.y)) + var err := dx + dy + var e2 := err << 1 #err * 2 + var sx = 1 if previous_mouse_pos_floored.x < mouse_pos_floored.x else -1 + var sy = 1 if previous_mouse_pos_floored.y < mouse_pos_floored.y else -1 + var x = previous_mouse_pos_floored.x + var y = previous_mouse_pos_floored.y + while !(x == mouse_pos_floored.x && y == mouse_pos_floored.y): + draw_pixel(Vector2(x, y), color) + e2 = err << 1 + if e2 >= dy: + err += dy + x += sx + if e2 <= dx: + err += dx + y += sy + +#Thanks to https://en.wikipedia.org/wiki/Flood_fill +func flood_fill(pos : Vector2, target_color : Color, replace_color : Color) -> void: + pos = pos.floor() + var pixel = layers[current_layer_index][0].get_pixelv(pos) + if target_color == replace_color: + return + elif pixel != target_color: + return + else: + var q = [pos] + for n in q: + var west : Vector2 = n + var east : Vector2 = n + while west.x >= location.x && layers[current_layer_index][0].get_pixelv(west) == target_color: + west += Vector2.LEFT + while east.x < location.x + size.x && layers[current_layer_index][0].get_pixelv(east) == target_color: + east += Vector2.RIGHT + for px in range(west.x + 1, east.x): + var p := Vector2(px, n.y) + draw_pixel(p, replace_color) + var north := p + Vector2.UP + var south := p + Vector2.DOWN + if north.y >= location.y && layers[current_layer_index][0].get_pixelv(north) == target_color: + q.append(north) + if south.y < location.y + size.y && layers[current_layer_index][0].get_pixelv(south) == target_color: + q.append(south) + +func _on_Timer_timeout() -> void: + Global.can_draw = true \ No newline at end of file diff --git a/Scripts/Global.gd b/Scripts/Global.gd new file mode 100644 index 000000000..7a068a146 --- /dev/null +++ b/Scripts/Global.gd @@ -0,0 +1,51 @@ +extends Node + +# warning-ignore:unused_class_variable +var can_draw := false +# warning-ignore:unused_class_variable +var has_focus := true +var canvas : Canvas +var canvas_parent +var left_color_picker : ColorPickerButton +var right_color_picker : ColorPickerButton +var file_menu : MenuButton +var edit_menu : MenuButton +var left_indicator : Sprite +var right_indicator : Sprite +var vbox_layer_container : VBoxContainer +var remove_layer_button : Button +var move_up_layer_button : Button +var move_down_layer_button : Button +var merge_down_layer_button : Button +# warning-ignore:unused_class_variable +var current_left_tool := "Pencil" +# warning-ignore:unused_class_variable +var current_right_tool := "Eraser" + +func _ready() -> void: + var root = get_tree().get_root() + canvas = find_node_by_name(root, "Canvas") + canvas_parent = canvas.get_parent() + left_color_picker = find_node_by_name(root, "LeftColorPickerButton") + right_color_picker = find_node_by_name(root, "RightColorPickerButton") + file_menu = find_node_by_name(root, "FileMenu") + edit_menu = find_node_by_name(root, "EditMenu") + left_indicator = find_node_by_name(root, "LeftIndicator") + right_indicator = find_node_by_name(root, "RightIndicator") + vbox_layer_container = find_node_by_name(root, "VBoxLayerContainer") + remove_layer_button = find_node_by_name(root, "RemoveLayerButton") + move_up_layer_button = find_node_by_name(root, "MoveUpLayer") + move_down_layer_button = find_node_by_name(root, "MoveDownLayer") + merge_down_layer_button = find_node_by_name(root, "MergeDownLayer") + +#Thanks to https://godotengine.org/qa/17524/how-to-find-an-instanced-scene-by-its-name +func find_node_by_name(root, node_name) -> Node: + if root.get_name() == node_name: + return root + for child in root.get_children(): + if child.get_name() == node_name: + return child + var found = find_node_by_name(child, node_name) + if found: + return found + return null \ No newline at end of file diff --git a/Scripts/LayerContainer.gd b/Scripts/LayerContainer.gd new file mode 100644 index 000000000..fabf72b02 --- /dev/null +++ b/Scripts/LayerContainer.gd @@ -0,0 +1,60 @@ +extends PanelContainer + +var i +var currently_selected := false +var visibility_toggled := false + +func _ready() -> void: + var stylebox = StyleBoxFlat.new() + stylebox.bg_color = Color("3d3b45") + add_stylebox_override("panel", stylebox) + changed_selection() + +# warning-ignore:unused_argument +func _process(delta) -> void: + var mouse_pos := get_local_mouse_position() + rect_position + if point_in_rectangle(mouse_pos, rect_position, rect_position + rect_size) && !visibility_toggled: + if Input.is_action_just_pressed("left_mouse"): + Global.canvas.current_layer_index = i + changed_selection() + +func changed_selection() -> void: + var parent = get_parent() + for child in parent.get_children(): + if child is PanelContainer: + if Global.canvas.current_layer_index == child.i: + child.currently_selected = true + child.get_stylebox("panel").bg_color = Color("282532") + + if Global.canvas.current_layer_index < Global.canvas.layers.size() - 1: + Global.move_up_layer_button.disabled = false + else: + Global.move_up_layer_button.disabled = true + + if Global.canvas.current_layer_index > 0: + Global.move_down_layer_button.disabled = false + Global.merge_down_layer_button.disabled = false + else: + Global.move_down_layer_button.disabled = true + Global.merge_down_layer_button.disabled = true + else: + child.currently_selected = false + child.get_stylebox("panel").bg_color = Color("3d3b45") + +func point_in_rectangle(p : Vector2, coord1 : Vector2, coord2 : Vector2) -> bool: + return p.x > coord1.x && p.y > coord1.y && p.x < coord2.x && p.y < coord2.y + +func _on_VisibilityButton_pressed() -> void: + if Global.canvas.layers[i][3]: + Global.canvas.layers[i][3] = false + get_child(0).get_child(0).text = "I" + else: + Global.canvas.layers[i][3] = true + get_child(0).get_child(0).text = "V" + + +func _on_VisibilityButton_button_down() -> void: + visibility_toggled = true + +func _on_VisibilityButton_button_up() -> void: + visibility_toggled = false \ No newline at end of file diff --git a/Scripts/Main.gd b/Scripts/Main.gd new file mode 100644 index 000000000..84f8c0d16 --- /dev/null +++ b/Scripts/Main.gd @@ -0,0 +1,214 @@ +extends Control + +var current_path := "" +var opensprite_file_selected := false +var pencil_tool +var eraser_tool +var fill_tool + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + var file_menu_items := { + "New..." : KEY_MASK_CTRL + KEY_N, + "Import..." : KEY_MASK_CTRL + KEY_O, + "Export..." : KEY_MASK_CTRL + KEY_S, + "Export as..." : KEY_MASK_SHIFT + KEY_MASK_CTRL + KEY_S, + "Quit" : KEY_MASK_CTRL + KEY_Q + } +# var edit_menu_items := { +# "Undo" : KEY_MASK_CTRL + KEY_Z, +# "Redo" : KEY_MASK_SHIFT + KEY_MASK_CTRL + KEY_Z, +# "Scale Image" : 0 +# } + var file_menu : PopupMenu = Global.file_menu.get_popup() + var edit_menu : PopupMenu = Global.edit_menu.get_popup() + var i = 0 + for item in file_menu_items.keys(): + file_menu.add_item(item, i, file_menu_items[item]) + i += 1 +# i = 0 +# for item in edit_menu_items.keys(): +# edit_menu.add_item(item, i, edit_menu_items[item]) +# i += 1 + file_menu.connect("id_pressed", self, "file_menu_id_pressed") + #edit_menu.connect("id_pressed", self, "edit_menu_id_pressed") + + pencil_tool = $UI/ToolPanel/VBoxContainer/ToolsContainer/Pencil + eraser_tool = $UI/ToolPanel/VBoxContainer/ToolsContainer/Eraser + fill_tool = $UI/ToolPanel/VBoxContainer/ToolsContainer/Fill + + pencil_tool.connect("pressed", self, "_on_Tool_pressed", [pencil_tool]) + eraser_tool.connect("pressed", self, "_on_Tool_pressed", [eraser_tool]) + fill_tool.connect("pressed", self, "_on_Tool_pressed", [fill_tool]) + pencil_tool.hint_tooltip = "P for left mouse button, Alt + P for right mouse button" + eraser_tool.hint_tooltip = "E for left mouse button, Alt + E for right mouse button" + fill_tool.hint_tooltip = "B for left mouse button, Alt + B for right mouse button" + +func _input(event): + #Handle tool shortcuts + if event.is_action_pressed("right_pencil_tool"): + _on_Tool_pressed(pencil_tool, false, false) + elif event.is_action_pressed("left_pencil_tool"): + _on_Tool_pressed(pencil_tool, false, true) + elif event.is_action_pressed("right_eraser_tool"): + _on_Tool_pressed(eraser_tool, false, false) + elif event.is_action_pressed("left_eraser_tool"): + _on_Tool_pressed(eraser_tool, false, true) + elif event.is_action_pressed("right_fill_tool"): + _on_Tool_pressed(fill_tool, false, false) + elif event.is_action_pressed("left_fill_tool"): + _on_Tool_pressed(fill_tool, false, true) + +func file_menu_id_pressed(id : int) -> void: + match id: + 0: #New + $CreateNewImage.popup_centered() + Global.can_draw = false + 1: #Import + $OpenSprite.popup_centered() + Global.can_draw = false + opensprite_file_selected = false + 2: #Export + if current_path == "": + $SaveSprite.popup_centered() + Global.can_draw = false + else: + save_sprite() + 3: #Export as + $SaveSprite.popup_centered() + Global.can_draw = false + 4: #Quit + get_tree().quit() + +func _on_CreateNewImage_confirmed() -> void: + var width = float($CreateNewImage/VBoxContainer/WidthCont/LineEdit.text) + var height = float($CreateNewImage/VBoxContainer/HeightCont/LineEdit.text) + width = clamp(width, 1, 16384) + height = clamp(height, 1, 16384) + new_canvas(Vector2(width, height).floor()) + +func _on_OpenSprite_file_selected(path : String) -> void: + var image = Image.new() + var err = image.load(path) + if err == OK: + opensprite_file_selected = true + new_canvas(image.get_size(), image) + else: + OS.alert("Can't load file") + +func new_canvas(size : Vector2, sprite : Image = null) -> void: + for child in Global.vbox_layer_container.get_children(): + if child is PanelContainer: + child.queue_free() + Global.canvas.queue_free() + Global.canvas = load("res://Canvas.tscn").instance() + Global.canvas.size = size + if sprite: + Global.canvas.current_sprite = sprite + Global.canvas.current_sprite.convert(Image.FORMAT_RGBA8) + Global.canvas_parent.add_child(Global.canvas) + +func _on_SaveSprite_file_selected(path : String) -> void: + current_path = path + save_sprite() + +func save_sprite() -> void: + var whole_image := Image.new() + whole_image.create(Global.canvas.size.x, Global.canvas.size.y, false, Image.FORMAT_RGBA8) + for layer in Global.canvas.layers: + whole_image.blend_rect(layer[0], Rect2(Global.canvas.position, Global.canvas.size), Vector2.ZERO) + layer[0].lock() + #var err = Global.canvas.current_sprite.save_png(current_path) + var err = whole_image.save_png(current_path) + if err != OK: + OS.alert("Can't save file") + +func _on_OpenSprite_popup_hide() -> void: + if !opensprite_file_selected: + Global.can_draw = true + print(Global.can_draw) + +func _on_ViewportContainer_mouse_entered() -> void: + Global.has_focus = true + +func _on_ViewportContainer_mouse_exited() -> void: + Global.has_focus = false + +func _can_draw_true() -> void: + Global.can_draw = true +func _can_draw_false() -> void: + Global.can_draw = false + +func _on_Tool_pressed(tool_pressed : BaseButton, mouse_press := true, key_for_left := true) -> void: + var current_action := tool_pressed.name + if (mouse_press && Input.is_action_just_released("left_mouse")) || (!mouse_press && key_for_left): + Global.current_left_tool = current_action + Global.left_indicator.get_parent().remove_child(Global.left_indicator) + tool_pressed.add_child(Global.left_indicator) + elif (mouse_press && Input.is_action_just_released("right_mouse")) || (!mouse_press && !key_for_left): + Global.current_right_tool = current_action + Global.right_indicator.get_parent().remove_child(Global.right_indicator) + tool_pressed.add_child(Global.right_indicator) + + +func _on_ScaleImage_confirmed() -> void: + var width = float($ScaleImage/VBoxContainer/WidthCont/LineEdit.text) + var height = float($ScaleImage/VBoxContainer/HeightCont/LineEdit.text) + width = clamp(width, 1, 16384) + height = clamp(height, 1, 16384) + #var sprites := [] + for i in range(Global.canvas.layers.size() - 1, -1, -1): + var sprite = Image.new() + sprite = Global.canvas.layers[i][1].get_data() + sprite.resize(width, height) + Global.canvas.layers[i][0] = sprite + Global.canvas.layers[i][0].lock() + Global.canvas.update_texture(i) + + Global.canvas.size = Vector2(width, height).floor() + +func add_layer(is_new := true) -> void: + var new_layer := Image.new() + if is_new: + new_layer.create(Global.canvas.size.x, Global.canvas.size.y, false, Image.FORMAT_RGBA8) + else: #clone layer + new_layer.copy_from(Global.canvas.layers[Global.canvas.current_layer_index][0]) + new_layer.lock() + var new_layer_tex := ImageTexture.new() + new_layer_tex.create_from_image(new_layer, 0) + Global.canvas.layers.append([new_layer, new_layer_tex, null, true]) + Global.canvas.generate_layer_panels() + +func _on_AddLayerButton_pressed() -> void: + add_layer() + +func _on_RemoveLayerButton_pressed() -> void: + Global.canvas.layers.remove(Global.canvas.current_layer_index) + Global.canvas.generate_layer_panels() + +func _on_MoveUpLayer_pressed() -> void: + change_layer_order(1) + +func _on_MoveDownLayer_pressed() -> void: + change_layer_order(-1) + +func change_layer_order(rate : int) -> void: + var change = Global.canvas.current_layer_index + rate + + var temp = Global.canvas.layers[Global.canvas.current_layer_index] + Global.canvas.layers[Global.canvas.current_layer_index] = Global.canvas.layers[change] + Global.canvas.layers[change] = temp + + Global.canvas.generate_layer_panels() + Global.canvas.current_layer_index = change + Global.canvas.get_layer_container(Global.canvas.current_layer_index).changed_selection() + +func _on_CloneLayer_pressed() -> void: + add_layer(false) + +func _on_MergeLayer_pressed() -> void: + var selected_layer = Global.canvas.layers[Global.canvas.current_layer_index][0] + Global.canvas.layers[Global.canvas.current_layer_index - 1][0].blend_rect(selected_layer, Rect2(Global.canvas.position, Global.canvas.size), Vector2.ZERO) + Global.canvas.layers[Global.canvas.current_layer_index - 1][0].lock() + Global.canvas.update_texture(Global.canvas.current_layer_index - 1) + _on_RemoveLayerButton_pressed() diff --git a/Transparent Background.png b/Transparent Background.png new file mode 100644 index 0000000000000000000000000000000000000000..015f7954340c809a78d13484036cd1c642e8bc43 GIT binary patch literal 558 zcmV+}0@3}6P)EX>4Tx04R}tkv&MmKpe$iQ>8^K4i*#<%ut;yh>AE$6^me@v=v%)FuC+YXws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;i>s5Oi`@MF8FC$1s8tGxbDzAp_6xbq^n3@1i`*``n+SN6DKE@QK8;OgAjzb>itw zOXs{#9A+g+AwDM_Gw6cEk6f2se&bwpSm2pqBa@mV4ik&THkR9%l?;`5ia4UE8s!UF zmle)ioYiubHSft^7|LtQX|B^8LL7@oAPEsNs@Omo7NWFjq?kz2e$2x^==hW5lF79J zMvi$@ph9x|;D7MDTeC1Z;U&dH?_b32;bRa{vG?BLDy{BLR4&KXw2B00(qQ zO+^Re2MZT4DZRLZ_W%F@8FWQhbVF}#ZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b w02fI_K~xCWV>or{%>V!Y8UO$PfBN)U081?jzj`w0*Z=?k07*qoM6N<$g0&Fsi2wiq literal 0 HcmV?d00001 diff --git a/Transparent Background.png.import b/Transparent Background.png.import new file mode 100644 index 000000000..c6f1b1d05 --- /dev/null +++ b/Transparent Background.png.import @@ -0,0 +1,13 @@ +[remap] + +importer="image" +type="Image" +path="res://.import/Transparent Background.png-b5955c8e7e6eaecd8f24a1732239745d.image" + +[deps] + +source_file="res://Transparent Background.png" +dest_files=[ "res://.import/Transparent Background.png-b5955c8e7e6eaecd8f24a1732239745d.image" ] + +[params] + diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000000000000000000000000000000000000..3e42e6f6bd0ba3b7694e01dda96598b932e4c72e GIT binary patch literal 163 LcmZQz81w)D0HXi_ literal 0 HcmV?d00001 diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 000000000..e81b26947 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,55 @@ +[preset.0] + +name="HTML5" +platform="HTML5" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="C:/Users/Overloaded/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Sprite Editor/Exported/HTML5/Sprite Editor.html" +patch_list=PoolStringArray( ) +script_export_mode=1 +script_encryption_key="" + +[preset.0.options] + +vram_texture_compression/for_desktop=true +vram_texture_compression/for_mobile=false +html/custom_html_shell="" +html/head_include="" +custom_template/release="" +custom_template/debug="" + +[preset.1] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="C:/Users/manos/Dropbox/Orama Founding Members/εταιρικα αρχεια/Godot Projects/Sprite Editor/Exported/Sprite Editor.exe" +patch_list=PoolStringArray( ) +script_export_mode=1 +script_encryption_key="" + +[preset.1.options] + +texture_format/bptc=false +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +texture_format/no_bptc_fallbacks=true +binary_format/64_bits=true +custom_template/release="" +custom_template/debug="" +application/icon="" +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="" +application/file_description="" +application/copyright="" +application/trademarks="" diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2b658158b6a2211b656d83fee35e3941e5ad376a GIT binary patch literal 3433 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 LNkvXXu0mjfd922> literal 0 HcmV?d00001 diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 000000000..96cbf4629 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 000000000..889bc57db --- /dev/null +++ b/project.godot @@ -0,0 +1,103 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "Node2D", +"class": "Canvas", +"language": "GDScript", +"path": "res://Scripts/Canvas.gd" +}, { +"base": "Node2D", +"class": "CanvasOLD", +"language": "GDScript", +"path": "res://Scripts/Old/Canvas.gd" +} ] +_global_script_class_icons={ +"Canvas": "", +"CanvasOLD": "" +} + +[application] + +config/name="Pixelorama" +run/main_scene="res://Main.tscn" +config/icon="res://icon.png" + +[autoload] + +Global="*res://Scripts/Global.gd" + +[debug] + +gdscript/warnings/return_value_discarded=false + +[input] + +zoom_in={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":4,"pressed":false,"doubleclick":false,"script":null) + ] +} +zoom_out={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":5,"pressed":false,"doubleclick":false,"script":null) + ] +} +camera_drag={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":3,"pressed":false,"doubleclick":false,"script":null) + ] +} +left_mouse={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) + ] +} +right_mouse={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":2,"pressed":false,"doubleclick":false,"script":null) + ] +} +left_pencil_tool={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":80,"unicode":0,"echo":false,"script":null) + ] +} +right_pencil_tool={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":80,"unicode":0,"echo":false,"script":null) + ] +} +left_eraser_tool={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"unicode":0,"echo":false,"script":null) + ] +} +right_eraser_tool={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"unicode":0,"echo":false,"script":null) + ] +} +left_fill_tool={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":66,"unicode":0,"echo":false,"script":null) + ] +} +right_fill_tool={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":66,"unicode":0,"echo":false,"script":null) + ] +} + +[rendering] + +quality/driver/driver_name="GLES2" +vram_compression/import_etc=true +vram_compression/import_etc2=false