From 75333d2659a80c6f23394572c8eb77f299561823 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Sun, 22 Dec 2024 21:51:33 +0100 Subject: [PATCH] #289: Add init command for easy installation --- .../migration.sql | 0 public/.gitignore | 3 +- public/assets.zip | Bin 0 -> 76285 bytes src/commands/init.ts | 277 ++++++++++++++++++ src/managers/zoneManager.ts | 5 - src/services/zoneService.ts | 31 -- 6 files changed, 279 insertions(+), 37 deletions(-) rename prisma/migrations/{20241222165332_init => 20241222205005_init}/migration.sql (100%) create mode 100644 public/assets.zip create mode 100644 src/commands/init.ts diff --git a/prisma/migrations/20241222165332_init/migration.sql b/prisma/migrations/20241222205005_init/migration.sql similarity index 100% rename from prisma/migrations/20241222165332_init/migration.sql rename to prisma/migrations/20241222205005_init/migration.sql diff --git a/public/.gitignore b/public/.gitignore index 782bfe1..7126c42 100644 --- a/public/.gitignore +++ b/public/.gitignore @@ -1,2 +1,3 @@ +** !.gitignore -** \ No newline at end of file +!assets.zip diff --git a/public/assets.zip b/public/assets.zip new file mode 100644 index 0000000000000000000000000000000000000000..a356d8197ae9c3509317347f5ff3404f25f90b2d GIT binary patch literal 76285 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

@n<;k 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

0{eq|7u{GoCP5L?s*6N{nIq+B}pX~ZL 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

*)-xD^%1ebsJHumgA{mydj%SsB3cTgwpI=y zL#4dM3Kww@LO=Dt*t(DsHPse6Ku@_30NZ~0#>R!xc3}mg*iPVC4N(G5P)j`}v@tjY zrLNgS+m;5|D$d#3ByD@2vgI(I1G$?L@KmwA;Mmgq$6e~7Kznz3pOJRF6ZAvo?Mo-& zLFSEUM*JZZpX)vtf1G*yE7$&;nYZ6bvZ?J9enP#|3e@!Vp zGFc4R#wk(Ky){lEugC&5L-?Ld2u2&WRY7`DR}V33M?1iw4@FmKY&4EDg)Y|0s+;HW zwQ2KC*WRxKL0QYG5Rk5AQ@#u_;K^#4Q9sENGmEMPQBgK{=|xAU8h~N-HCebq<){`C ziw^HzgCO+B6$pUY4A3bnfArMQGy&02H0z>I#Wbg7q(WFgrP@l1ldJ!I)f11QBN4enXcD4{>ze+axA zA>+u~^|H1QeQLWBiAzN0f*NB_!p(?isy42N3At%lQdKCuBZsf9sxH*8+(dGNOb7(* zhRy**U1ZSQQJz;sg-3;f^qcz<$OIl`axns)_)|P`lTg2$mepd&nZ#tKszd4KPv%N< zJI4etlZ}Lk!#$qCHSI7b^77I0($;m+67!^oEJN|F8?t{-ONn1p+T>s`8yh((TVZi2 zF)?9DIV&+?SsM#{;Z4@cN>bX|!dhHH`b(wl7QWV%`E$MNTaEi*A#Nbz z_3uy{DEmU~tRy*FHE|L(lf~e1=q;?sy+fzRHK~Qd+FuKt>ui?Pu)f*dbl;4Bx0r<` z)Eo=V&Bt+WX=PrNpIUME7dmz-hzlP4ygYL#02IjTj9Wwh*9g8;MGmy{bkhvHgMS-` zAJTuS9a|4q7teoF&n(5#mC5mh5laLDv%cm=3ht(Y3)Rd zv78L$cTP!L%V(l$bGI=2I0g3PHEWX?86|i7Gdsc4s%zKzPb!ODSl$u7JZAsOz9#pW zn(uvdO|q%loezssl2wOBFPZx6FRER78n`}5by2>-1AXH`V??o*@AI~-z4Dp9liNzE zUBS4Han#@f0bR}YePPjapR5!fWM@`{H4nGS;i_Xq3efvSL)4a*uKt0*m;#Z$v2wE4 zDN;S)8xKzXf^HU460+jrHZWlc8(Aq~Noz|9VObd|8(~|Rt(>f!m4&RBnDrOB)#Giy z_hP#Xfk~-hqn40AD=y`81doK%=lLdLY(f2|Bl!guNzrZI^ZzF%OwYN(;*;(rlZcpf2vxS;-^ zm1s(F<0xedRU4_~n^4RR;=`KR{JH8~QW)R6pI$XaI?1O$v7^mlNPsmOGiO7*muK9$ zu7{1+_T)5<$hxLacrWHW-E+MPyikF3oSBfR#c#picuEI0;&?Bb0*+VQ!T6qyzoon% z+4yJLWBN;bfsW+f-)Rr8w=W9(qP_m!g8JXmUekZINA*UGLZA`1pG@rVG%wlV@hvv~ zTPT7-x!4Ty3r#ri3@H}Qctpnlmp}9QaePonWqmC>8MmEOy9%N7TCsMdp}m?A;`$o~ zp6gQQQC$|Y4H4*&iEA0xGIT>p??g}7Q=MVVr?osyl6N1*gG_i8k1QN`SSIZ|tVlVj zP7eb=z=k?*J}x*zx96CGdE7Ifsa7G__i;8YItEf_*49g2AEel`1$qD zjFBNB0Ll2f)|YRy<>F^ce~NmhL=FH4Lk##j8@@>-MD@Gb@MkkjOw!6qSk6KY-wGow zBPVPrCT%HfWo>CCC1WKnBL%bh@>Is7CjJxZmowmC4bB|r)|o~DfC@i;M4iFQ@pTQd zGL~}UR&sK}GB6tp{Buf5O4!0m7A9;VZDDC;WoaR0Eo=2()PGs)&-aVIU+d+?Z>Yb2 z+X%nbgWExJ>j6Fz`qr+5pY5Ps=@+y8+^qEdY@^@J_M5Fsc*uhW zqJM$>v2p1u#=?l;kVrFzn)VEZuT#X z@MoX?E98L@mi#H?H { + // Assets + await this.importTiles() + await this.importObjects() + await this.createCharacterSprite() + await this.createCharacterHair() + + // Zone + await this.createZone() + + // User + await this.createUser() + + // Stop process + process.exit(0) + } + + // Read tiles from getPublicPath('tiles') and create them in the database + private async importTiles(): Promise { + for (const tile of fs.readdirSync(getPublicPath('tiles'))) { + await prisma.tile.create({ + data: { + id: tile.split('.')[0], + name: 'New tile' + } + }) + } + } + + // Read objects from getPublicPath('objects') and create them in the database + private async importObjects(): Promise { + for (const object of fs.readdirSync(getPublicPath('objects'))) { + await prisma.object.create({ + data: { + id: object.split('.')[0], + name: 'New object', + // Use sharp to get the dimensions of the image + frameHeight: await sharp(getPublicPath('objects', object)).metadata().then((metadata) => metadata.height), + frameWidth: await sharp(getPublicPath('objects', object)).metadata().then((metadata) => metadata.width) + } + }) + } + } + + private async createCharacterSprite(): Promise { + await prisma.sprite.create({ + data: { + id: '023d1e9d-f57f-4faa-8412-86c07107cf85', + name: 'Character', + spriteActions: { + create: [ + { + action: 'idle_right_down', + sprites: [ + "data:image/png;base64,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" + ], + originX: 0, + originY: 0, + isAnimated: false, + isLooping: false, + frameWidth: 64, + frameHeight: 94, + frameRate: 0 + }, + { + action: 'idle_left_up', + sprites: [ + "data:image/png;base64,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" + ], + originX: 0, + originY: 0, + isAnimated: false, + isLooping: false, + frameWidth: 64, + frameHeight: 94, + frameRate: 0 + }, + { + action: 'walk_right_down', + sprites: [ + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAABWCAYAAAA+Eu3nAAAGmElEQVR4nLVaTWgbRxh92gjF2BYG25VsalhDvOyhEji9hPSQiyv3UnxI2kOpU3xKTBowsSHQQ00w9NCDDIWWNjeT+pLSk482vvgSfGkcZChCKWghkFo4IkK1kA2Re9h8o5nZmdldNX0g8M7OzJtv5vuddWLmm4cwYXhr7VzVXp9bTRgHKpAMI1mYnsTlmWuB90tF/30cUiXZ8Nba+cL0JIYzWdh5F31ODv2jA0Kfh7/k0K4cYqm4dh6V0NIRXZ65JhBdGHGEX//oAPqcHH5Y+Uq71aFkADCcyQIA+pycdmAvhAIZSWXn3SgLZTAtSkumQ+v4BG9eVYx9okin1UYVYT8qgbY4iEzWy+QyAtt4dfEOvFIZANBpNCNPtFR8FJ+sXTmEe/0Gnu7u4azmCe9uL97H7cX7gUluL97HXm4qPhlJdXXxDp7u7gUmfPysGiB8/KwaSqQkq9eO0K4cAvDtjbaSJhz/8uPIkxvJ6nOriY2DKpPOzrs4q3noNJp4/eQ31o//m56ffvJRKJlSG0k6r1RmhCnY+PPuLaEf7y/bZjMEoNpGTrp67Yi1k7L0jw6wHyGqSSg9SH1uNbG+vQ8AgpJ0Gk20jk8Cv06jiaXio9BwY3RXGwdVgZDOT/7JJqKD0YMsTE8yQoI6kIZLFUpGhEBXSpkciB6tQ8lIkssz15jSUASPKpGRjE8LeNh5Fza6sW559grWt6LnIgKZLsmh1KB1fMK8S5+Tg+vksAzfLjcikCYoleNzj1TGZh14TeNtj6SmqE7vNg6qWsKkimjw0hiTgg/5rpNjkpF3ofc2AJQAoKoTrGtntNLBS2O4MOKwrQKAtDvNfu99Oo9UxhbyFGoH/CPQpQcWn+T0OTlGFBXktihHkZWKB1OQVMYOJKKdRhPWUNqY7FBuEsU/WrQaayjNpJIn5/3gP3/9rSQkmNJAS9WBHyz7QcDXUIp57cohOo0mUxwTkgCEXJ6kIgerMgNS8/puNwRtHFTx6+8/of5k30ymkqqyu80CJ0FlZwBYm38MIWT+FuRYEtppNAMrB3z/6GRmhbazmhfoZyTzSmW4inydHC7ga6s1lAYA5roAIAU7MM5IRtK0ACEYykRUOgFAesQ/31ZkKk2k9kplFrd4iWSDl5/Dig+m+jThWc0TEh2CbPCq9jDDtmj1uslUePOqwqSIU2zEqmKIiBEcHwAgM6iGGnakYhCIJgF5FSMZnRcN2DioskSnF1IjGRDULB7kE3lt022Zqb6OvI0ywrZMhSQgVpgqtac+vAG712+w9lhkhDD1D5u4XjsyzmEB0ObqXqkcOY/noctDLJpUt1Ii1JGqPI4uD0nSpICokcWXF/0/Xr4Gnu1jZfyUTSTnisWXF4GsC8DvY+ddYDsY17QepFAoCM/FnR2BvIuLKBQK2KH30Kt/klZLINcDANlst31+fl63LhwdiduoU5IkYM6ICFNT/j3HxMSE0P7ixQvhuXV8grQ7rZyDef1eiKhtamoKhUKBnbMurjEPQh3iXv/JaFcOtf4z4K76nBwWpifxx+aPgc60ZfLWAWAK4pXKWr+Z+PyD989//v5boaB486qCm599jQ/n7zIloa18/vw5G0xtDx48wMr4qVACq8qmJOAbZmsojfQIsH3vFhu0s7ODQqGAbDYrkAC+Bm5ubgIAs0Eq+I31mQp+PDvt2pcCK+OnASM31Wcsb3QydkCLhjNZfJfpPpOnoeBKRKTNdh5YeFvyqqSzaBLZ9/FlLK3cVHtZQ2mkMra5j3wTx0Nctcuk0mHw0hjsvGv2+iSdXGdRgkqEtI20QN7bU6wzSWfxg9uVQ2WywydEbHHcjtARtI5PjNJZ/OCwS2WVWseRLnCTqiNSnWlc6XrOrnhCupukK0JALV0kMioOTeAvQXnpQsloRbTSs5pndEOy+fDSLc9eYVup/MoEdM+IvxkIg+wcZOmMVQy/Ne8CATI5Hwm7aVPBT+98CfkFMzJ+C0UvHh38QuWreoGMwBftdh6h13oqpDI2nBkbZzVPkMyo+mGJUBRSHv/ZqAHxCGTw5/1OyKLifyHTFSGxbwtMqNeOgBICF2wEo2RxazNSfZ3JaMniEKkit1cqwyuVhTAjfkSQjLIX0OcTFbSS9Zrzk4vjnwlGBXFm/ItMUy4og/8wRFgGsL61dq6VjLf+K1/cNH4cALrnJhPxEHOQtwU7ICpIZXc7TCDlHIB/9uvb+6jPrSYS/P/w8G5HdeEcJdSopKcxCfkfhsK2ykQUhn8BlrgX3yO5OYgAAAAASUVORK5CYII=", + "data:image/png;base64,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", + "data:image/png;base64,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", + "data:image/png;base64,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" + ], + originX: 0, + originY: 0, + isAnimated: true, + isLooping: false, + frameWidth: 64, + frameHeight: 94, + frameRate: 7 + }, + { + action: 'walk_left_up', + sprites: [ + "data:image/png;base64,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", + "data:image/png;base64,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", + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAABZCAYAAADVeL+8AAAFcElEQVR4nLVZzUtbWRT/JUqURAkkIWlBeIUmuDHQrqQI3Ygu/Qtk6LLMUldDqYtAF10ozKrMLjDC7LNsEMSdm7GQboIRfBDQ99BHxQ/aQM0sknM9971z33upmQOB5H78zu/ee+75uEks//EXoiTXqPWldm9tKxE2bzIO6MbqIqzqvNZ3tHeA+rDfpMQInmvU+huri6gsr2Lm+ROt7+bkHC+XXyNXLMFzHdQbtb6kQATPNWr9Pzd/w3RlAelCBhP5itY/A+AGgFUFLAxWJClImhinipYIrCZmZ5EqWoM5xZI8RmqsLK8imZ0VJ0hiVefx5sWzwMFr4MQ6TH5eHuPu4nYwOYJAYM+t6ryadHdxizSOtX4CjiOhphgFdn91DQCwW22xX9xzmhRXPNfBq7e/R4ObWJgIHO0diMAiuH9yWN/hP38r4O/HXwPjAnvuuU4sBYBu39KKReY91w4FpTHkb74ff9VIkWjMvbWtRL1R6+eKJVhVfWCqaAWU2q02LANrI3PPdSIPlvrtVltkLYJ7a1uJ+pfTgAJ+G6ndcx0jsJn5UAEHkoC51L+cBvy60RS9ta3EzudDIysOKgGHgo8ipkgUG3xUlwAACX+A5j6Z3K8/fpIc7R0AkPc7AJ5r1PpvXjxTN8+qzgfsm6IPtZEpkgFwJZMSMDFNFa1BOMNAAf1OFzK4Gc6jOCoFa+2GSsDpQgZ3AOAOxqQLGQADu7+/ulYrkYJ1krPmwCQT+YoC5G1cZp4/Qe7VoiJIoqyFGqVrz8Ek4Il8BRP5CqYrC1qwVuDcIvgB/rzUY6i/7ebkXP1OFzLaqjU7t1tt7Hw+DLDnYH5lPdfGzcm5WlUyO6t2QYFzjaMIEZFWOJbr7xfa4kjwuHnK3cVtgH0s5mEKRvbnJCZnZVLmb49kblLA200BfeQDlVhHBuieaxv3z88+rm8fmymSQu6HjOCmfZRYe66DnmurSoQu5KOYR2VmY9kWikIjgcfJGcPEmM5xBaSEK+u5dmTKZ2RumsiVRUkA/LI0j+2zqchkNCwBJRELrpWVFWw3m8DZN3xAUAGBbp9NAQDyQ2UUR2llxmpufX0djuPgXbMp9E4pEgDw7+4DAe52RfBSqYRyuYxyuYylpSUAQKfTEUk4jnlrRPByuSwO9rd3Oh2USnLdD7AD9R/e3Nyc+pgUmkgQlmiKBOj/7VcYJQo8yqyiCJBwf58EHsoUk48g6Xa7xj7Pdcxhjqe++/v7AVCylm63qz4mCyIJWMvm0x/Y3t0F8HBgBCKB+U2RF7xifv6hCLwbKiChC0OmR6DNZhN5BmxkzvPz3apeNYgXdbjSOiNvt9qqjNHA+dvW/dX1oERvAcApNp/+UAQAPSvmNSu3Os3OqZKg78CDiXJL4kUCT2BplWQcGjgFWH8lAehlOwEns7NIZmfx6eN7VezyV7rINy7OxP+qMZ1dUKv89PE9i06nD9tClsJLElPiQ2W73Wor6+BjxbKFREriRSXD7SFgKiUBBCsLXoXRNTaFOdp/u9VWMZUXw6RYYx6XtZ89MfcTCmwLdz6jekoSMgINnIDjZrH+1+fQS3R/da0dUFwxVYKhT3+mpw5ezoeVmGIF/RgxXn8uUXmgsuWQN/SxpNB+JxcA/5Xy3D8nVyxpjivgcklGtXGJ3CSdPAGTZzNZCpeeayMF/c1LA6cv6UJmpP8jPNcZRqm23uYH99+0qC0hv05+W+pX4L9i41FbBvxP7y2h4Ka/w8YCPi4RwcflZ4zMpT/yHgWeLmQwXVlAqmjh5fJrbKwuPkqBAh/lAsUVdUPvr64HD8LjBrdbbVhVaH4iToUcCe6tbSV2GrX+BgDyE6bH9lFFvfz7D+4xoCT/AaNCPNJBtKgMAAAAAElFTkSuQmCC", + "data:image/png;base64,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" + ], + originX: 0, + originY: 0, + isAnimated: true, + isLooping: false, + frameWidth: 64, + frameHeight: 94, + frameRate: 7 + }, + ] + } + } + }) + + await prisma.characterType.create({ + data: { + id: 1, + name: 'New character type', + gender: CharacterGender.MALE, + race: CharacterRace.HUMAN, + spriteId: '023d1e9d-f57f-4faa-8412-86c07107cf85' + } + }) + } + + private async createCharacterHair(): Promise { + await prisma.sprite.create({ + data: { + id: '922ee95f-1500-49c0-8ead-f8cc46dad136', + name: 'Hair 1', + spriteActions: { + create: [ + { + action: 'front', + sprites: [ + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAASCAYAAABB7B6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA5ElEQVR4nK2VMQ7DIAxFc4AulViysTBUldgqReoGp+pReloqIhx9LOy4IoOVYBw//DFkyZ/vUs3db2Vkuc1rMTwOrRvUwPjwZXs9S0rv/d1BkuDXYx4N41SABAl+7ZJXPzcEqQALJApmroAnC22smbQPw5WPkjoAE7w++X6JAJSF9JRWS3EWiEnzwCrBWPJLkA4gdU1sPvoQIdjGGE+xp8mTULr1IO5Orjlt9NkGaif4kIgqwC6hSarMkkgFoLZ8hVvTeQoglXwJQNMV5bsUUJNKnZJnAHhVWO76vwCjH8hs8gr4ARPESmbfQUg4AAAAAElFTkSuQmCC" + ], + originX: 0.5, + originY: 5.34, + isAnimated: false, + isLooping: false, + frameWidth: 64, + frameHeight: 18, + frameRate: 0 + }, + { + action: 'back', + sprites: [ + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAWCAYAAADafVyIAAAACXBIWXMAAAsTAAALEwEAmpwYAAABHUlEQVR4nJ1VuwrDMAzMB3QpZOmWxUMpdCsYsrlflU/p16YIrCJfTrLTQZCHfSflLufpvX0mVvP1sns1sk7fu8DP+7Ln16MpeZaWWwMkz0pZf++xgQO4AssmLEsi1QN3J5DFXqUT4JRASRQoBYWkpybQ7lIFssCsASUb0gDBM3x7Bm6NQF3EwKWYuBa4p8nBPbgpB+CeqxoC9pPoBgau99ixR+I6yAPPRhtLwCZ3CbzPkquQVh9Zp3uty8IJLHgpa9OV3ishyyYbOeFPhnZFh0UEeu0SoIC5dm8JoojoRgXqUCq4JcB4GIoKpkMiE2EGDUUFngnoILQiOx+6Bw46IZFYQMJIB1ccL7pn+BH/EtkjsZONgA8TMIeMgAvBF10K1sbmijzuAAAAAElFTkSuQmCC" + ], + originX: 0.5, + originY: 4.34, + isAnimated: false, + isLooping: false, + frameWidth: 64, + frameHeight: 22, + frameRate: 0 + } + ] + } + } + }) + + await prisma.characterHair.create({ + data: { + id: 1, + name: 'Hair 1', + gender: CharacterGender.MALE, + isSelectable: true, + spriteId: '922ee95f-1500-49c0-8ead-f8cc46dad136' + } + }) + + await prisma.sprite.create({ + data: { + id: 'a53811e2-3e85-4db3-875e-f2f989ca800d', + name: 'Hair 2', + spriteActions: { + create: [ + { + action: 'front', + sprites: [ + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAYCAYAAAARfGZ1AAAACXBIWXMAAAsTAAALEwEAmpwYAAABMUlEQVR4nJ2VwRGDMAwE0wa95JcC0gQl8EkpqiNfGmGGLlyAMg7InA/Z2Dw0YCfakyVZPF4feVyZjIOitfhEa4KG77sLegmXcdBFngl8J/oqPOxgE4kW36O1iFRTEQBmAiik61QVKaZC1ynB8N0s7uHaE3BToTssPs1wjSfBPRY4Ra06H04652BYs7h3gnLUuoF4zVATxRpkcMy15bMKBmE+KUbvwoNTUBZK+zr/YV7us5R4rSf7byyCQGxfTI0Ll93R3rklDYYg3LP/JDjC1AHzjCnNHBTP4OgQKCX25JvMF6dYUM7dQnnnC1eaSW6fp4u0Hm3WOwkzODqnLtCtX73e7YJjcbCg4rTWLTimhYvZAy/OFu8E0vmJq05FLp5AF/VGfYrci6C1Uy4/Fj2OLfYDMkR+SDAIGhkAAAAASUVORK5CYII=" + ], + originX: 0.5, + originY: 5.34, + isAnimated: false, + isLooping: false, + frameWidth: 64, + frameHeight: 18, + frameRate: 0 + }, + { + action: 'back', + sprites: [ + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAZCAYAAADaILXQAAAACXBIWXMAAAsTAAALEwEAmpwYAAABQklEQVR4nJ1VwQ3DIBDLGtmlvw7QJTJCPh2FOfrtIkjZggGuOgkiYwwkfaAGCrbP3B3L8x2W2QjbajiunPFxCTR9XrdAp+BhWy2Gh9mxV6rvqB+C27Gfqp3Ih8/99wrJ1ArLBAXY57g2IpFWpAyiVDNRWVMEDTgCoEL/ZvXn3L5nFBKcVcesFlWjJc23IGgukD3G8AsIz9nGChzTDjdLEAfPBLgHIy4ENTgesvab1eP/eEcNeKXUBAmv5UjwQjlzqiwZXZZ1yFX2FAKpPIF/XWtoLyZBKaxpficAQ0IUwATyQhEwihxX1YlWyFRE9VzmvcGtQIJjG8VNaQDO+y4Vkep6UdjFlz4E51ZrlFo94PKQYKQSnH030QVVBmF0w66o/I8iO7jUe+9s94lLdBDDVqU+fSyYQBHx2l8PNNvVIx+B/wBEg1ah1I2aGwAAAABJRU5ErkJggg==" + ], + originX: 0.5, + originY: 4.34, + isAnimated: false, + isLooping: false, + frameWidth: 64, + frameHeight: 22, + frameRate: 0 + } + ] + } + } + }) + + await prisma.characterHair.create({ + data: { + id: 2, + name: 'Hair 2', + gender: CharacterGender.MALE, + isSelectable: true, + spriteId: 'a53811e2-3e85-4db3-875e-f2f989ca800d' + } + }) + } + + private async createZone(): Promise { + const zone = await prisma.zone.create({ + data: { + name: 'New zone', + width: 100, + height: 100, + tiles: Array.from({ length: 100 }, () => Array.from({ length: 100 }, () => 'a2fd8d6f-5042-437a-9c1e-c66b91ecc35b')), + zoneEffects: { + create: [ + { + effect: 'light', + strength: 100 + } + ] + }, + } + }) + } + + private async createUser(): Promise { + await prisma.user.create({ + data: { + id: 1, + username: 'root', + email: 'local@host', + password: await bcrypt.hash('password', 10), + online: false + } + }) + + await prisma.character.create({ + data: { + id: 1, + userId: 1, + name: 'root', + role: 'gm', + characterTypeId: 1, + characterHairId: 1 + } + }) + } +} diff --git a/src/managers/zoneManager.ts b/src/managers/zoneManager.ts index f4372ea..0dd3a43 100644 --- a/src/managers/zoneManager.ts +++ b/src/managers/zoneManager.ts @@ -9,11 +9,6 @@ class ZoneManager { private readonly zones = new Map() public async boot(): Promise { - // Create first zone if it doesn't exist - if (!(await ZoneRepository.getById(1))) { - await new ZoneService().createDemoZone() - } - const zones = await ZoneRepository.getAll() await Promise.all(zones.map((zone) => this.loadZone(zone))) diff --git a/src/services/zoneService.ts b/src/services/zoneService.ts index 8a46fce..6c6abf6 100644 --- a/src/services/zoneService.ts +++ b/src/services/zoneService.ts @@ -2,38 +2,7 @@ import prisma from '../utilities/prisma' import { gameLogger } from '../utilities/logger' class ZoneService { - async createDemoZone(): Promise { - try { - const tiles = [ - ['blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile'], - ['blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile'], - ['blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile'], - ['blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile'], - ['blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile'], - ['blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile'], - ['blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile'], - ['blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile'], - ['blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile'], - ['blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile', 'blank_tile'] - ] - await prisma.zone.create({ - data: { - name: 'Demo zone', - width: 10, - height: 10, - tiles - } - }) - - gameLogger.info('Demo zone created.') - - return true - } catch (error: any) { - gameLogger.error(`Failed to create demo zone: ${error instanceof Error ? error.message : String(error)}`) - return false - } - } } export default ZoneService