First Version
This commit is contained in:
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -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"]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
16
education.json
Normal file
16
education.json
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
21
gulpfile.js
21
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,
|
||||
|
||||
@@ -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!
|
||||
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!
|
||||
|
||||
@@ -1,3 +1 @@
|
||||
[
|
||||
"en_US"
|
||||
]
|
||||
["en_US", "nl_NL"]
|
||||
|
||||
172
resource_packs/texts/nl_NL.lang
Normal file
172
resource_packs/texts/nl_NL.lang
Normal file
@@ -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!
|
||||
BIN
resource_packs/textures/entity/agent copy.png
Normal file
BIN
resource_packs/textures/entity/agent copy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 6.2 KiB |
@@ -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}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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") {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user