From 18346549de449346542b05a6c77f77983ffd1dd6 Mon Sep 17 00:00:00 2001 From: Bram Verhulst Date: Fri, 13 Sep 2024 11:28:44 +0200 Subject: [PATCH] First Version --- .idea/vcs.xml | 6 + behavior_packs/dialogue/scene.json | 15 +- education.json | 16 ++ gulpfile.js | 21 +++ resource_packs/texts/en_US.lang | 120 ++++++------ resource_packs/texts/languages.json | 4 +- resource_packs/texts/nl_NL.lang | 172 ++++++++++++++++++ resource_packs/textures/entity/agent copy.png | Bin 0 -> 1857 bytes resource_packs/textures/entity/agent.png | Bin 1857 -> 6309 bytes scripts/Commandeer/Trigger/manager.ts | 9 +- .../level/abstractTrackFollowMission.ts | 2 +- scripts/Commandeer/utils/agentUtils.ts | 3 +- scripts/levels/mission2/mission2part1.ts | 8 +- scripts/levels/mission2/mission2part2.ts | 3 +- scripts/main.ts | 10 +- 15 files changed, 311 insertions(+), 78 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 education.json create mode 100644 resource_packs/texts/nl_NL.lang create mode 100644 resource_packs/textures/entity/agent copy.png diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/behavior_packs/dialogue/scene.json b/behavior_packs/dialogue/scene.json index 59c9438..e6ef6a5 100644 --- a/behavior_packs/dialogue/scene.json +++ b/behavior_packs/dialogue/scene.json @@ -478,7 +478,7 @@ } ] }, - "commands": ["/dialogue change @e[tag=bilal1] @initiator bilal_end_2"] + "commands": ["/dialogue open @e[tag=bilal1] @initiator bilal_end_2"] } ] }, @@ -499,7 +499,18 @@ } ] }, - "buttons": [] + "buttons": [ + { + "name": { + "rawtext": [ + { + "translate": "bilal.end.2.button" + } + ] + }, + "commands": ["/scriptevent cc:endMission"] + } + ] } ] } diff --git a/education.json b/education.json new file mode 100644 index 0000000..72dac35 --- /dev/null +++ b/education.json @@ -0,0 +1,16 @@ +{ + "commands": { + "hiddenFromPlayer": ["*"] + }, + "codebuilder": { + "defaulturi": "https://minecraft.makecode.com/?norunonx=1#tutorial:https://github.com/CodeFever-VZW/MinecraftTutorials/CC1/lesson1-no-ex", + "disableLegacyTitleBar": true, + "capabilities": { + "agent": { + "permissions": { + "canModifyBlocks": true + } + } + } + } +} diff --git a/gulpfile.js b/gulpfile.js index e2228fb..d8af95d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -20,6 +20,15 @@ const behavior_pack_authors = ["Me and my cat"]; const exportWorldFolderPath = "/Users/Bram/AppData/Local/Packages/Microsoft.MinecraftEducationEdition_8wekyb3d8bbwe/LocalState/games/com.mojang/minecraftWorlds/cH+wZocbAQA="; +// Starts in mojang root +const additionalPacks = [ + { + name: "CodeSlot", + RP: "development_behavior_packs/CodeSlot", + BP: "development_resource_packs/CodeSlot", + }, +]; + // === END CONFIGURABLE VARIABLES const gulp = require("gulp"); @@ -381,6 +390,17 @@ function copy_build_behavior_pack_to_export_folder(cb) { .pipe(gulp.dest("export/" + bpfoldername + "/behavior_packs/" + bpfoldername)); } +function copy_extra_packs_to_export_folder(cb) { + //Copy the additional packs to the export folder, check the folder name of the src and add it to the export folder + additionalPacks.forEach((pack) => { + let rp = pack.RP; + let bp = pack.BP; + gulp.src([mcdir + rp + "/**/**"]).pipe(gulp.dest("export/" + bpfoldername + "/resource_packs/" + pack.name)); + gulp.src([mcdir + bp + "/**/**"]).pipe(gulp.dest("export/" + bpfoldername + "/behavior_packs/" + pack.name)); + }); + cb(); +} + function copy_world_to_export_folder(cb) { if (exportWorldFolderPath == "") { var readLineSync = import("readline-sync").then((readLineSync) => { @@ -599,6 +619,7 @@ exports.export = gulp.series( copy_world_to_export_folder, build, gulp.parallel(copy_build_behavior_pack_to_export_folder, copy_build_resource_pack_to_export_folder), + copy_extra_packs_to_export_folder, levelnametxt_rename, nbt_rename_world, add_education_json_file, diff --git a/resource_packs/texts/en_US.lang b/resource_packs/texts/en_US.lang index 2608804..d18bb2f 100644 --- a/resource_packs/texts/en_US.lang +++ b/resource_packs/texts/en_US.lang @@ -1,37 +1,37 @@ ## General messages -message.trail.follow=Follow the trail +message.trail.follow=Follow the trail! message.levels.completed=You have completed all levels! ## goto messages -message.goto.airlock=Ga naar de luchtsluis -message.enter.airlock=Ga de luchtsluis binnen +message.goto.airlock=Go to the airlock +message.enter.airlock=Enter the airlock -message.follow.path.temple=Follow the path and talk to §6Bakker Bilal -message.goto.temple=Go to the Temple and talk to §2Veteraan Suki +message.follow.path.temple=Follow the path and talk to §6Baker Bilal +message.goto.temple=Go to the Temple and talk to §2Veteran Suki -message.goto.door=Go the Temple Door +message.goto.door=Go to the temple door -message.goto.bilal=Go to Bakker §6Bakker Bilal +message.goto.bilal=Go to Baker §6Baker Bilal message.goto.level1=Go to Level 1 message.goto.level2=Go to Level 2 message.goto.level3=Go to Level 3 - ## Fail conditions message.level.incorrect=§cIncorrect!§b -message.level.incorrect.subtext=Probeer opnieuw! +message.level.incorrect.subtext=Try again! message.level.outofbounds=§cOut of bounds!§b -message.level.outofbounds.subtext=You can't be over water! +message.level.outofbounds.subtext=You cannot go above lava! +message.goto.learningplatform=Go to the learning platform ## npc names npc.name.help=Help -npc.name.suki=§2Veteraan Suki -npc.name.bilal=§6Bakker Bilal +npc.name.suki=§2Veteran Suki +npc.name.bilal=§6Baker Bilal npc.name.ramses=§dRamses -npc.name.chanel=§9Wetenschapper Chanel +npc.name.chanel=§9Scientist Chanel npc.name.paul=§7Paul npc.name.farah=§5Farah npc.name.turt=§aTurt @@ -50,121 +50,115 @@ button.letsgo=Let's Go! message.outofbounds=§cOut of bounds!§b message.incorrect=§cIncorrect!§b - message.talkto.ramses=Talk to §dRamses message.talkto.chanel=Talk to §9Chanel -message.talkto.suki=Talk to §2Veteraan Suki +message.talkto.suki=Talk to §2Veteran Suki ## Intro messages -message.intro.started=Crack the Vault! -message.intro.make=Break the code! -message.intro.done=§aYou have cracked the code!§b +message.intro.started=Guess the combination! +message.intro.make=Guess the pattern! +message.intro.done=§aYou guessed the pattern!§b -message.teleport.airlock=Wat doe je? Je moet de agent redden! +message.teleport.airlock=What are you doing? You must save the agent! ## Level 1 messages message.mission1part1.name=Level 1 -message.mission1part1.started=Level 1 is started! +message.mission1part1.started=Level 1 has started! message.mission1part1.complete=Level 1 is complete! message.mission1part1.make=Make Level 1 ## Level 2 messages message.mission1part2.name=Level 2 -message.mission1part2.started=Level 2 is started! +message.mission1part2.started=Level 2 has started! message.mission1part2.complete=Level 2 is complete! message.mission1part2.make=Make Level 2 ## Level 3 messages message.mission1part3.name=Level 3 -message.mission1part3.started=Level 3 is started! +message.mission1part3.started=Level 3 has started! message.mission1part3.complete=Level 3 is complete! message.mission1part3.make=Make Level 3 ## mission 2 part 1 message.mission2part1.name=Level 1 -message.mission2part1.started=Level 1 is started! +message.mission2part1.started=Level 1 has started! message.mission2part1.complete=Level 1 is complete! message.mission2part1.make=Make Level 1 - ## mission 2 part 2 message.mission2part2.name=Level 2 -message.mission2part2.started=Level 2 is started! +message.mission2part2.started=Level 2 has started! message.mission2part2.complete=Level 2 is complete! message.mission2part2.make=Make Level 2 ## mission 3 part 1 message.mission3part1.name=Level 1 -message.mission3part1.started=Level 1 is started! +message.mission3part1.started=Level 1 has started! message.mission3part1.complete=Level 1 is complete! message.mission3part1.make=Make Level 1 ## mission 3 part 2 message.mission3part2.name=Level 2 -message.mission3part2.started=Level 2 is started! +message.mission3part2.started=Level 2 has started! message.mission3part2.complete=Level 2 is complete! message.mission3part2.make=Make Level 2 ## mission 3 part 3 message.mission3part3.name=Level 3 -message.mission3part3.started=Level 3 is started! +message.mission3part3.started=Level 3 has started! message.mission3part3.complete=Level 3 is complete! message.mission3part3.make=Make Level 3 ## Goto messages - - ## Npc messages -chanel.greeting.1.text=Hey daar! Dit is jouw laatste missie in deze onderwaterwereld. De gemene piraten hebben de agent gevangengenomen in de onderwatertempel. Nadat je de agent helpt ontsnappen moet je ook wat koraal herstellen. -chanel.greeting.1.button=Hoe? +chanel.greeting.1.text=Hey there! This is your last mission in this underwater world. The evil pirates have captured the agent in the underwater temple. After you help the agent escape, you also need to restore some coral. +chanel.greeting.1.button=How? -chanel.greeting.2.text=Je bevrijdt jouw Agent door alles van de afgelopen missies te gebruiken. In de opdrachten zullen zowel sequentie, eindige herhaling, enkelvoudige en meervoudige selecties voorkomen. +chanel.greeting.2.text=You will free your Agent by using everything from the past missions. The tasks will include sequences, finite repetition, single and multiple selections. chanel.greeting.2.button=Wow! -chanel.greeting.3.text=Top! Eerst ga je de code moeten kraken om de ingestorte grot open te blazen. De code volgt een patroon. Alleen ik ben vergeten welk patroon... -chanel.greeting.3.button=Oké! +chanel.greeting.3.text=Great! First, you'll need to crack the code to blow open the collapsed cave. The code follows a pattern. Only, I've forgotten which pattern... +chanel.greeting.3.button=Ok! -chanel.goto_temple.text=Snel! Ga door het opgeblazen gat voor het terug instort. Ik regel wel dat niks hier instort. +chanel.goto_temple.text=Quick! Go through the blown-up hole before it collapses again. I'll make sure nothing collapses here. chanel.goto_temple.button=Let's Go! -bilal.greeting.1.text=De agent word gevangengehouden in deze tempel. Pas op, ik denk dat er vallen zijn in die tempel. Wees voorzichtig. -bilal.greeting.1.button=Oké! +bilal.greeting.1.text=The agent is being held captive in this temple. Watch out, I think there are traps in that temple. Be careful. +bilal.greeting.1.button=Ok! -suki.greeting.1.text=Oeps, je hebt de val geactiveerd. We zitten nu vast in deze tempel. Ik zal even rondkijken of er een manier is om de deur terug open te krijgen. Probeer jij ondertussen om de agent vrij te krijgen. -suki.greeting.1.button=Zal ik doen! +suki.greeting.1.text=Oops, you activated the trap. We're stuck in this temple now. I'll look around to see if there's a way to get the door open again. Meanwhile, try to free the agent. +suki.greeting.1.button=I will! -suki.greeting.2.text=Je moet de agent door het parcours laten wandelen. Pas op, je mag niet boven lava gaan anders zal de agent doodgaan! Veel succes! -suki.greeting.2.button=Oké! +suki.greeting.2.text=You have to guide the agent through the course. Be careful, you can't go over lava or the agent will die! Good luck! +suki.greeting.2.button=Ok! -suki.afterlevel.1.1.text=Goed gedaan! De agent is nu terug bij ons. Ga terug naar het leerplatform. Maar eerst: een weetje! Wist je dat de koralen hun kleur te danken hebben aan de algen die erin zitten? Die algen kunnen niet tegen een snelle stijging van watertemperatuur. Als de temperatuur stijgt, worden de algen afgestoten en verbleekt en sterft het koraal. -suki.afterlevel.1.1.button=Oké! +suki.afterlevel.1.1.text=Well done! The agent is back with us. Return to the learning platform. But first: a fun fact! Did you know that corals get their color from the algae inside them? Those algae can't handle a quick rise in water temperature. When the temperature rises, the algae are expelled, and the coral bleaches and dies. +suki.afterlevel.1.1.button=Ok! -suki.afterlevel.1.2.text=Goed gedaan, de agent is vrij en terug bij ons! Nu moeten we het dode koraal vervangen door gezond koraal om de oceaan te redden. Dan zijn we weer een stap dichterbij hier ontsnappen. -suki.afterlevel.1.2.button=Hoe dan? +suki.afterlevel.1.2.text=Well done, the agent is free and back with us! Now we need to replace the dead coral with healthy coral to save the ocean. Then we’ll be one step closer to escaping. +suki.afterlevel.1.2.button=How? -suki.afterlevel.1.3.text=Gebruik enkelvoudige en meervoudige selecties om de dode koralen te vervangen door levende koralen! Voor het eerste level moet je het volgende programmeren: Als de Agent op een blok rood dood koraal stap, dan plaatst hij een blok levend rood koraal. +suki.afterlevel.1.3.text=Use single and multiple selections to replace the dead corals with living corals! For the first level, program the following: If the Agent steps on a block of dead red coral, then place a block of living red coral. suki.afterlevel.1.3.button=OK! +suki.afterlevel.2.1.intermezzo.1.text=Well done! For the second level, it's going to get harder. If the Agent steps on dead yellow coral, place yellow coral. Otherwise, if the Agent steps on dead red coral, place red coral. +suki.afterlevel.2.1.intermezzo.1.button=I'll try! -suki.afterlevel.2.1.intermezzo.1.text=Goed zo! Voor het tweede level wordt het terug een stuk moeilijker. Als de Agent op dood geel koraal stapt, dan plaats hij geel koraal. Anders als de Agent op dood rood koraal stapt, dan plaats bij rood koraal. -suki.afterlevel.2.1.intermezzo.1.button=Ik Probeer! +suki.afterlevel.2.1.text=Well done! You’ve completed the second level. Go back to the learning platform and answer the question. Then you can start opening the door. But first, another fun fact! Did you know that climate change is the biggest threat to coral reefs? It raises the temperature and makes the water more acidic. Overfishing, pollution, and agricultural runoff also pose a threat. +suki.afterlevel.2.1.button=What a shame! +suki.afterlevel.2.2.text=I looked around and found the door's off switch! It's at the end of the course, on the right side of the temple. You'll need to guide the agent to activate it! +suki.afterlevel.2.2.button=How? -suki.afterlevel.2.1.text=Goed gedaan! Je hebt het tweede level voltooid. Ga terug naar het leerplatform en vul de vraag in. Dan kan je starten met de deur te openen. Maar eerst nog een weetje! Wist je dat klimaatverandering de grootste bedreiging is voor koraalriffen? Daardoor stijgt de temperatuur en wordt het water zuurder. Daarnaast vormt ook overbevissing, vervuiling end e afvoer van landbouwgiffen een bedreiging. -suki.afterlevel.2.1.button=Wat Jammer! +suki.afterlevel.2.3.text=I’ve already written some code to get through the course. I’m afraid I’m not as good a programmer as you. There are still some bugs. Can you fix them and get the agent to the lever? +suki.afterlevel.2.3.button=Of course! -suki.afterlevel.2.2.text=Ik heb even kunnen rondkijken en heb de uitknop van de deur gevonden! Hij is aan het einde van het parcours rechts in de tempel. Je zal de agent moeten sturen om dit te activeren! -suki.afterlevel.2.2.button=Hoe dan? +suki.afterlevel.3.1.text=You’ve opened the door! We and the agent are free. Go to Baker Bilal to finish this mission. +suki.afterlevel.3.1.button=Awesome! -suki.afterlevel.2.3.text=Ik heb alvast wat code gemaakt om het door het parcours te geraken. Ik vrees dat ik niet zo een goede programmeur ben als jij. Er zitten nog wat bugs in. Kan jij deze oplossen en de agent bij de lever krijgen? -suki.afterlevel.2.3.button=Tuurlijk! - -suki.afterlevel.3.1.text=Je hebt de deur open gekregen! We en de agent zijn vrij. Ga naar Bakker bilal om deze missie af te sluiten. -suki.afterlevel.3.1.button=Geweldig! - -bilal.end.1.text=Je kan terug naar het leerplatform gaan. Dit was de laatste opdracht. Maar eerst; nog een weetje. Wist je dat men denkt dat op het einde van deze eeuw, meer dan 90 procent van alle koraalriffen verloren zullen gaan? Probeer dus jouw uitstoot te verminderen en zo de koralen te helpen. -bilal.end.1.button=Ja hé! - -bilal.end.2.text=Bedankt om deze wereld een beetje beter te maken! You Rock! \ No newline at end of file +bilal.end.1.text=You can return to the learning platform now. This was the final task. But first, another fact: Did you know that by the end of this century, more than 90 percent of all coral reefs are expected to be lost? Try to reduce your emissions and help the corals. +bilal.end.1.button=Yeah! +bilal.end.2.text=Thanks for making this world a little better! You Rock! +bilal.end.2.button=No problem! diff --git a/resource_packs/texts/languages.json b/resource_packs/texts/languages.json index e876334..c80d1ed 100644 --- a/resource_packs/texts/languages.json +++ b/resource_packs/texts/languages.json @@ -1,3 +1 @@ -[ - "en_US" -] \ No newline at end of file +["en_US", "nl_NL"] diff --git a/resource_packs/texts/nl_NL.lang b/resource_packs/texts/nl_NL.lang new file mode 100644 index 0000000..b537f33 --- /dev/null +++ b/resource_packs/texts/nl_NL.lang @@ -0,0 +1,172 @@ +## General messages +message.trail.follow=Volg het spoor! +message.levels.completed=Je hebt alle levels voltooid! + +## goto messages +message.goto.airlock=Ga naar de luchtsluis +message.enter.airlock=Ga de luchtsluis binnen + +message.follow.path.temple=Follow the path and talk to §6Bakker Bilal +message.goto.temple=Go to the Temple and talk to §2Veteraan Suki + +message.goto.door=Ga naar de tempel deur + +message.goto.bilal=Ga naar Bakker §6Bakker Bilal + +message.goto.level1=Go to Level 1 +message.goto.level2=Go to Level 2 +message.goto.level3=Go to Level 3 + + +## Fail conditions +message.level.incorrect=§cIncorrect!§b +message.level.incorrect.subtext=Probeer opnieuw! + +message.level.outofbounds=§cOut of bounds!§b +message.level.outofbounds.subtext=Je mag niet boven lava! + +message.goto.learningplatform=Ga naar het leerplatform + + +## npc names +npc.name.help=Help +npc.name.suki=§2Veteraan Suki +npc.name.bilal=§6Bakker Bilal +npc.name.ramses=§dRamses +npc.name.chanel=§9Wetenschapper Chanel +npc.name.paul=§7Paul +npc.name.farah=§5Farah +npc.name.turt=§aTurt +npc.name.mo=§4Mo +npc.name.al=Al + +## Default buttons +button.thanks=Thanks! +button.close=Close +button.ok=Ok +button.hello=Hello +button.noprob=No problem +button.letsgo=Let's Go! + +## Common +message.outofbounds=§cOut of bounds!§b +message.incorrect=§cIncorrect!§b + + +message.talkto.ramses=Praat tegen §dRamses +message.talkto.chanel=Praat tegen §9Chanel +message.talkto.suki=Praat tegen §2Veteraan Suki + +## Intro messages +message.intro.started=Raad de combinatie! +message.intro.make=Raad het patroon! +message.intro.done=§aJe hebt het patroon geraden!§b + +message.teleport.airlock=Wat doe je? Je moet de agent redden! + +## Level 1 messages +message.mission1part1.name=Level 1 +message.mission1part1.started=Level 1 is gestart! +message.mission1part1.complete=Level 1 is compleet! +message.mission1part1.make=Make Level 1 + +## Level 2 messages +message.mission1part2.name=Level 2 +message.mission1part2.started=Level 2 is gestart! +message.mission1part2.complete=Level 2 is compleet! +message.mission1part2.make=Make Level 2 + +## Level 3 messages +message.mission1part3.name=Level 3 +message.mission1part3.started=Level 3 is gestart! +message.mission1part3.complete=Level 3 is compleet! +message.mission1part3.make=Make Level 3 + +## mission 2 part 1 +message.mission2part1.name=Level 1 +message.mission2part1.started=Level 1 is gestart! +message.mission2part1.complete=Level 1 is compleet! +message.mission2part1.make=Make Level 1 + + +## mission 2 part 2 +message.mission2part2.name=Level 2 +message.mission2part2.started=Level 2 is gestart! +message.mission2part2.complete=Level 2 is compleet! +message.mission2part2.make=Make Level 2 + +## mission 3 part 1 +message.mission3part1.name=Level 1 +message.mission3part1.started=Level 1 is gestart! +message.mission3part1.complete=Level 1 is compleet! +message.mission3part1.make=Make Level 1 + +## mission 3 part 2 +message.mission3part2.name=Level 2 +message.mission3part2.started=Level 2 is gestart! +message.mission3part2.complete=Level 2 is compleet! +message.mission3part2.make=Make Level 2 + +## mission 3 part 3 +message.mission3part3.name=Level 3 +message.mission3part3.started=Level 3 is gestart! +message.mission3part3.complete=Level 3 is compleet! +message.mission3part3.make=Make Level 3 + +## Goto messages + + + +## Npc messages + +chanel.greeting.1.text=Hey daar! Dit is jouw laatste missie in deze onderwaterwereld. De gemene piraten hebben de agent gevangengenomen in de onderwatertempel. Nadat je de agent helpt ontsnappen moet je ook wat koraal herstellen. +chanel.greeting.1.button=Hoe? + +chanel.greeting.2.text=Je bevrijdt jouw Agent door alles van de afgelopen missies te gebruiken. In de opdrachten zullen zowel sequentie, eindige herhaling, enkelvoudige en meervoudige selecties voorkomen. +chanel.greeting.2.button=Wow! + +chanel.greeting.3.text=Top! Eerst ga je de code moeten kraken om de ingestorte grot open te blazen. De code volgt een patroon. Alleen ik ben vergeten welk patroon... +chanel.greeting.3.button=Oké! + +chanel.goto_temple.text=Snel! Ga door het opgeblazen gat voor het terug instort. Ik regel wel dat niks hier instort. +chanel.goto_temple.button=Let's Go! + +bilal.greeting.1.text=De agent word gevangengehouden in deze tempel. Pas op, ik denk dat er vallen zijn in die tempel. Wees voorzichtig. +bilal.greeting.1.button=Oké! + +suki.greeting.1.text=Oeps, je hebt de val geactiveerd. We zitten nu vast in deze tempel. Ik zal even rondkijken of er een manier is om de deur terug open te krijgen. Probeer jij ondertussen om de agent vrij te krijgen. +suki.greeting.1.button=Zal ik doen! + +suki.greeting.2.text=Je moet de agent door het parcours laten wandelen. Pas op, je mag niet boven lava gaan anders zal de agent doodgaan! Veel succes! +suki.greeting.2.button=Oké! + +suki.afterlevel.1.1.text=Goed gedaan! De agent is nu terug bij ons. Ga terug naar het leerplatform. Maar eerst: een weetje! Wist je dat de koralen hun kleur te danken hebben aan de algen die erin zitten? Die algen kunnen niet tegen een snelle stijging van watertemperatuur. Als de temperatuur stijgt, worden de algen afgestoten en verbleekt en sterft het koraal. +suki.afterlevel.1.1.button=Oké! + +suki.afterlevel.1.2.text=Goed gedaan, de agent is vrij en terug bij ons! Nu moeten we het dode koraal vervangen door gezond koraal om de oceaan te redden. Dan zijn we weer een stap dichterbij hier ontsnappen. +suki.afterlevel.1.2.button=Hoe dan? + +suki.afterlevel.1.3.text=Gebruik enkelvoudige en meervoudige selecties om de dode koralen te vervangen door levende koralen! Voor het eerste level moet je het volgende programmeren: Als de Agent op een blok rood dood koraal stap, dan plaatst hij een blok levend rood koraal. +suki.afterlevel.1.3.button=OK! + + +suki.afterlevel.2.1.intermezzo.1.text=Goed zo! Voor het tweede level wordt het terug een stuk moeilijker. Als de Agent op dood geel koraal stapt, dan plaats hij geel koraal. Anders als de Agent op dood rood koraal stapt, dan plaats bij rood koraal. +suki.afterlevel.2.1.intermezzo.1.button=Ik Probeer! + + +suki.afterlevel.2.1.text=Goed gedaan! Je hebt het tweede level voltooid. Ga terug naar het leerplatform en vul de vraag in. Dan kan je starten met de deur te openen. Maar eerst nog een weetje! Wist je dat klimaatverandering de grootste bedreiging is voor koraalriffen? Daardoor stijgt de temperatuur en wordt het water zuurder. Daarnaast vormt ook overbevissing, vervuiling end e afvoer van landbouwgiffen een bedreiging. +suki.afterlevel.2.1.button=Wat Jammer! + +suki.afterlevel.2.2.text=Ik heb even kunnen rondkijken en heb de uitknop van de deur gevonden! Hij is aan het einde van het parcours rechts in de tempel. Je zal de agent moeten sturen om dit te activeren! +suki.afterlevel.2.2.button=Hoe dan? + +suki.afterlevel.2.3.text=Ik heb alvast wat code gemaakt om het door het parcours te geraken. Ik vrees dat ik niet zo een goede programmeur ben als jij. Er zitten nog wat bugs in. Kan jij deze oplossen en de agent bij het einde te krijgen? +suki.afterlevel.2.3.button=Tuurlijk! + +suki.afterlevel.3.1.text=Je hebt de deur open gekregen! We en de agent zijn vrij. Ga naar Bakker bilal om deze missie af te sluiten. +suki.afterlevel.3.1.button=Geweldig! + +bilal.end.1.text=Je kan terug naar het leerplatform gaan. Dit was de laatste opdracht. Maar eerst; nog een weetje. Wist je dat men denkt dat op het einde van deze eeuw, meer dan 90 procent van alle koraalriffen verloren zullen gaan? Probeer dus jouw uitstoot te verminderen en zo de koralen te helpen. +bilal.end.1.button=Ja hé! +bilal.end.2.text=Bedankt om deze wereld een beetje beter te maken! You Rock! +bilal.end.2.button=Geen Probleem! \ No newline at end of file diff --git a/resource_packs/textures/entity/agent copy.png b/resource_packs/textures/entity/agent copy.png new file mode 100644 index 0000000000000000000000000000000000000000..11940a805f177b7338b16e45cf41f4ceb6226acd GIT binary patch literal 1857 zcmd^<`#;l*AICot8)q(KlNQ^U`)ow^rD3zitQZX=*EPcsVs7;%HW`{rbL--i<8~rU zE^(xC&QZ$Ot<{%05j`B$Q7(1n__jtJ=kNHw9*@`S`FOm3djIf#yh{8TG%ZbpCIA3h zbZ;tim*{^CR^3f%^M%n}?BO$M6hJysT6% z$Yxu(yW@`?h%J$ealrpa7OE$%f?O>Z((4Fpf@l zkBK?|;)P^wt>XRr(l>8B5)(^azkVeWfesKMc&;I(0BRGYVa?hLcLa1$0GgI3lf`#* zh?keoO-(rl1SE8JQj(HD*eKZHTy?YE!zgD)M-y+|;x;!Y-@ct7m7bfPCdI|EuU*qX zd&8V!K?rw1$0n|=jnmK&arts=Yim+ZPjq8r$i<7~_;|8kIwP(0^uR!D;r){Zy?#Pr zPRG#D*4x{_%*@cr3hm@%>g=qAKzSBnK%rnLR3C#OCnSXS_6BwSaM0hM*WOUrRuNL{w`5K7 zcPKZTQ5@c6>>=75hZzUMs;h$isaC)qcZP)pBSXs}S3;u`&J2(gnJThljUHEa6 zRo8~uU$^Ps?X%_VRXyX91Zq{0J?uYLix0CsoTu1UU=60O?yV#c91cBs?&u`2c^x{) zok@@>uy5_cZ^f#G29;$%}pb5$UVnQvbcRKE7}-@tdG|wgBE@D+Gl#JvC(p zP@XmIPuH1j?R)N;v;0S-ukt_pi_)v)6~?4<9m`ZnVnc6$fOc?XOk+Ho%2;zd`(?r! zdOb#;aXo3)Ez@Vfr?Fw7OWHqr6T14C|8DBq@aa!Wg>tew2KL7$Ys)!s^Mn8%ekbS6 z(#-gCY1G}cHFY14h*y2_gEqOk`pFA-a^JmwIP`pD{(e>&R4X4oKb*6^T_fJt^*t#| z;Vx2183Q?ba*^(p&?^e^Q{|_s8-De!UdKPKD#Vw%B8Sf?*LTMEP1omUPmIVvt6qhp zNEw-e%T=|R8I558>!U&p4q5up%z)Zz-p}K3UYf8Gnk;{pdDGSu+y004AP231O7 G3;za@4zh0m literal 0 HcmV?d00001 diff --git a/resource_packs/textures/entity/agent.png b/resource_packs/textures/entity/agent.png index 11940a805f177b7338b16e45cf41f4ceb6226acd..75f4921d8e15f88b13330f58041b92e62177d324 100644 GIT binary patch literal 6309 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 literal 1857 zcmd^<`#;l*AICot8)q(KlNQ^U`)ow^rD3zitQZX=*EPcsVs7;%HW`{rbL--i<8~rU zE^(xC&QZ$Ot<{%05j`B$Q7(1n__jtJ=kNHw9*@`S`FOm3djIf#yh{8TG%ZbpCIA3h zbZ;tim*{^CR^3f%^M%n}?BO$M6hJysT6% z$Yxu(yW@`?h%J$ealrpa7OE$%f?O>Z((4Fpf@l zkBK?|;)P^wt>XRr(l>8B5)(^azkVeWfesKMc&;I(0BRGYVa?hLcLa1$0GgI3lf`#* zh?keoO-(rl1SE8JQj(HD*eKZHTy?YE!zgD)M-y+|;x;!Y-@ct7m7bfPCdI|EuU*qX zd&8V!K?rw1$0n|=jnmK&arts=Yim+ZPjq8r$i<7~_;|8kIwP(0^uR!D;r){Zy?#Pr zPRG#D*4x{_%*@cr3hm@%>g=qAKzSBnK%rnLR3C#OCnSXS_6BwSaM0hM*WOUrRuNL{w`5K7 zcPKZTQ5@c6>>=75hZzUMs;h$isaC)qcZP)pBSXs}S3;u`&J2(gnJThljUHEa6 zRo8~uU$^Ps?X%_VRXyX91Zq{0J?uYLix0CsoTu1UU=60O?yV#c91cBs?&u`2c^x{) zok@@>uy5_cZ^f#G29;$%}pb5$UVnQvbcRKE7}-@tdG|wgBE@D+Gl#JvC(p zP@XmIPuH1j?R)N;v;0S-ukt_pi_)v)6~?4<9m`ZnVnc6$fOc?XOk+Ho%2;zd`(?r! zdOb#;aXo3)Ez@Vfr?Fw7OWHqr6T14C|8DBq@aa!Wg>tew2KL7$Ys)!s^Mn8%ekbS6 z(#-gCY1G}cHFY14h*y2_gEqOk`pFA-a^JmwIP`pD{(e>&R4X4oKb*6^T_fJt^*t#| z;Vx2183Q?ba*^(p&?^e^Q{|_s8-De!UdKPKD#Vw%B8Sf?*LTMEP1omUPmIVvt6qhp zNEw-e%T=|R8I558>!U&p4q5up%z)Zz-p}K3UYf8Gnk;{pdDGSu+y004AP231O7 G3;za@4zh0m diff --git a/scripts/Commandeer/Trigger/manager.ts b/scripts/Commandeer/Trigger/manager.ts index e5b9557..13ff68d 100644 --- a/scripts/Commandeer/Trigger/manager.ts +++ b/scripts/Commandeer/Trigger/manager.ts @@ -3,6 +3,7 @@ import { Mindkeeper, StoreType } from "../mindKeeper"; import { vector3 } from "../utils/vectorUtils"; import { Maker } from "./maker"; import { Trigger } from "./trigger"; +import { DEVELOPER_MODE } from "../../main"; export class TriggerEvent { player: Player; @@ -101,7 +102,9 @@ export class Manager { players.forEach((player) => { // player.sendMessage(`Player ${player.name} is in trigger ${trigger.IsPlayerInside(player)}`); if (trigger.hasPlayerEnterdTrigger(player)) { - world.sendMessage(`Player ${player.name} entered trigger`); + if (DEVELOPER_MODE) { + world.sendMessage(`Player ${player.name} entered trigger`); + } //Check if a function trigger is set const isFunctionSet = this.functionTriggers.has(trigger.eventToDispatch); @@ -110,7 +113,9 @@ export class Manager { this.functionTriggers.get(trigger.eventToDispatch)!(event); } else { - world.sendMessage(`Triggered ${trigger.eventToDispatch}`); + if (DEVELOPER_MODE) { + world.sendMessage(`Triggered ${trigger.eventToDispatch}`); + } } } }); diff --git a/scripts/Commandeer/level/abstractTrackFollowMission.ts b/scripts/Commandeer/level/abstractTrackFollowMission.ts index 5f342e5..8dd3d36 100644 --- a/scripts/Commandeer/level/abstractTrackFollowMission.ts +++ b/scripts/Commandeer/level/abstractTrackFollowMission.ts @@ -60,7 +60,7 @@ class AbstractAgentTrackMission extends Level { // world.getDimension("overworld").runCommand("/kill @e[type=agent]"); world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s"); - teleportAgent(agentStartPositon); + teleportAgent(agentStartPositon, agentStartFacing); return false; } else if (isComplete) { return true; diff --git a/scripts/Commandeer/utils/agentUtils.ts b/scripts/Commandeer/utils/agentUtils.ts index a672967..e037e98 100644 --- a/scripts/Commandeer/utils/agentUtils.ts +++ b/scripts/Commandeer/utils/agentUtils.ts @@ -25,7 +25,8 @@ function isAgentAt(position: Vector3): boolean { .getEntitiesAtBlockLocation(position) .forEach((entity) => { if (!entity.isValid()) { - world.sendMessage("INVALID ENTITY"); + // world.sendMessage("INVALID ENTITY"); + world.sendMessage("Please re-open the CodeEditor"); return; } if (entity.typeId == "minecraft:agent") { diff --git a/scripts/levels/mission2/mission2part1.ts b/scripts/levels/mission2/mission2part1.ts index 2092b3b..a0c5966 100644 --- a/scripts/levels/mission2/mission2part1.ts +++ b/scripts/levels/mission2/mission2part1.ts @@ -3,7 +3,7 @@ import Level from "../../Commandeer/level/level"; import pupeteer from "../../Commandeer/pupeteer"; import { teleportAgent, isAgentAt } from "../../Commandeer/utils/agentUtils"; import { vector3 } from "../../Commandeer/utils/vectorUtils"; -import { mindKeeper, CURRENT_LEVEL } from "../../main"; +import { mindKeeper, CURRENT_LEVEL, DEVELOPER_MODE } from "../../main"; import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block"; import { mission2part1Conditions } from "../../levelConditions/mission2part1Conditions"; import { checkBlockCondition } from "../../Commandeer/level/levelTypes"; @@ -44,12 +44,14 @@ const mission2part1: Level = new Level( if (isCorrect) { isComplete = true; - world.sendMessage("Shit works"); + if(DEVELOPER_MODE){ + world.sendMessage("Shit works"); + } } else { isComplete = false; pupeteer.sendWorldMessage("%message.incorrect"); pupeteer.setTitleTimed("%message.incorrect", 2.5); - teleportAgent(mission2part1StartPosition); + teleportAgent(mission2part1StartPosition, mission2Part1AgentFacing); world .getDimension("overworld") .setBlockType(mission2part1ResetCommandBlockPos, MinecraftBlockTypes.RedstoneBlock); diff --git a/scripts/levels/mission2/mission2part2.ts b/scripts/levels/mission2/mission2part2.ts index 1807387..bd98640 100644 --- a/scripts/levels/mission2/mission2part2.ts +++ b/scripts/levels/mission2/mission2part2.ts @@ -44,12 +44,11 @@ const mission2part2: Level = new Level( if (isCorrect) { isComplete = true; - world.sendMessage("Shit works"); } else { isComplete = false; pupeteer.sendWorldMessage("%message.incorrect"); pupeteer.setTitleTimed("%message.incorrect", 2.5); - teleportAgent(mission2part2StartPosition); + teleportAgent(mission2part2StartPosition, mission2Part1AgentFacing); world .getDimension("overworld") .setBlockType(mission2part2ResetCommandBlockPos, MinecraftBlockTypes.RedstoneBlock); diff --git a/scripts/main.ts b/scripts/main.ts index a1572f3..425a8ab 100644 --- a/scripts/main.ts +++ b/scripts/main.ts @@ -158,6 +158,7 @@ system.runInterval(() => { await randomExplosions(); blowUpDoor(); triggerAlarm(); + setNPCDialog("chanel1", "chanel_goto_temple"); mindKeeper.increment(CURRENT_LEVEL); } })(); @@ -249,6 +250,10 @@ system.runInterval(() => { Pupeteer.setActionBar("%message.goto.bilal"); setNPCDialog("bilal1", "bilal_end_1"); break; + case 24: + //Goto learning platform + Pupeteer.setActionBar("%message.goto.learningplatform"); + break; } } }); @@ -414,6 +419,7 @@ system.afterEvents.scriptEventReceive.subscribe((event) => { checkNpcResponse(event, "cc:level2Intermezzo", 15); checkNpcResponse(event, "cc:afterLevel2", 17); checkNpcResponse(event, "cc:afterLevel3", 21); + checkNpcResponse(event, "cc:endMission", 23); }); function checkNpcResponse(event: ScriptEventCommandMessageAfterEvent, id: string, level: number) { @@ -619,7 +625,9 @@ triggerManager.RegisterFunctionTrigger("FrontAirLockInside", async () => { triggerManager.RegisterFunctionTrigger("BackAirLockOutside", async () => { if (backAirlockState == AirLockState.Open) { - world.sendMessage("Closing back door"); + if (DEVELOPER_MODE) { + world.sendMessage("Closing back door"); + } await PlayBackDoorCloseAnimation(); backAirlockState = AirLockState.Closed; }