Compare commits
6 Commits
9d7b1e71ce
...
d6b9b18ef3
| Author | SHA1 | Date | |
|---|---|---|---|
| d6b9b18ef3 | |||
| f4632b0a10 | |||
| c323e98bcd | |||
| 283f95e00a | |||
| a21af04b9e | |||
| bc51d6899f |
@@ -0,0 +1,397 @@
|
|||||||
|
{
|
||||||
|
"format_version": "1.19.50",
|
||||||
|
"minecraft:npc_dialogue": {
|
||||||
|
"scenes": [
|
||||||
|
{
|
||||||
|
"scene_tag": "bilal_beforelevel_1_1",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.bilal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "bilal.beforelevel.1.1.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "bilal.beforelevel.1.1.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/dialogue open @e[tag=bilal1] @initiator bilal_beforelevel_1_2"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "bilal_beforelevel_1_2",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.bilal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "bilal.beforelevel.1.2.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "bilal.beforelevel.1.2.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/dialogue open @e[tag=bilal1] @initiator bilal_beforelevel_1_3"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "bilal_beforelevel_1_3",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.bilal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "bilal.beforelevel.1.3.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "bilal.beforelevel.1.3.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/scriptevent cc:startLevel1"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "bilal_afterlevel_1_1",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.bilal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "bilal.afterlevel.1.1.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "bilal.afterlevel.1.1.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/scriptevent cc:afterLevel1"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "chanel_beforelevel_2_1",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.chanel"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "chanel.beforelevel.2.1.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "chanel.beforelevel.2.1.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/scriptevent cc:startLevel2"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "chanel_afterlevel_2_1",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.chanel"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "chanel.afterlevel.2.1.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "chanel.afterlevel.2.1.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/scriptevent cc:afterLevel2"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "chanel_afterlevel_3_1",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.chanel"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "chanel.afterlevel.3.1.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "chanel.afterlevel.3.1.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/scriptevent cc:afterLevel3"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "chanel_afterlevel_4_1",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.chanel"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "chanel.afterlevel.4.1.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "chanel.afterlevel.4.1.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/dialogue open @e[tag=chanel1] @initiator chanel_afterlevel_4_2"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "chanel_afterlevel_4_2",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.chanel"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "chanel.afterlevel.4.2.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "chanel.afterlevel.4.2.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/scriptevent cc:afterLevel4"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "farah_beforelevel_5_1",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.farah"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "farah.beforelevel.5.1.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "farah.beforelevel.5.1.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/dialogue open @e[tag=farah1] @initiator farah_beforelevel_5_2"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "farah_beforelevel_5_2",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.farah"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "farah.beforelevel.5.2.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "farah.beforelevel.5.2.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/dialogue open @e[tag=farah1] @initiator farah_beforelevel_5_3"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "farah_beforelevel_5_3",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.farah"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "farah.beforelevel.5.3.text",
|
||||||
|
"with": ["\n", "\n", "\n", "\n", "\n", "\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "farah.beforelevel.5.3.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": ["/scriptevent cc:startLevel5"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene_tag": "farah_afterlevel_5_1",
|
||||||
|
"npc_name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "npc.name.farah"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "farah.afterlevel.5.1.text",
|
||||||
|
"with": ["\n"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons": [
|
||||||
|
{
|
||||||
|
"name": {
|
||||||
|
"rawtext": [
|
||||||
|
{
|
||||||
|
"translate": "farah.afterlevel.5.1.button"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"commands": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
18
behavior_packs/items/chainsaw.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"format_version": "1.20.13",
|
||||||
|
"minecraft:item": {
|
||||||
|
"description": {
|
||||||
|
"identifier": "cc:chainsaw",
|
||||||
|
"menu_category": {
|
||||||
|
"category": "items",
|
||||||
|
"is_hidden_in_commands": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"components": {
|
||||||
|
"minecraft:max_stack_size": 1,
|
||||||
|
"minecraft:icon": {
|
||||||
|
"texture": "cc.chainsaw"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
18
behavior_packs/items/drill.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"format_version": "1.20.13",
|
||||||
|
"minecraft:item": {
|
||||||
|
"description": {
|
||||||
|
"identifier": "cc:drill",
|
||||||
|
"menu_category": {
|
||||||
|
"category": "items",
|
||||||
|
"is_hidden_in_commands": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"components": {
|
||||||
|
"minecraft:max_stack_size": 1,
|
||||||
|
"minecraft:icon": {
|
||||||
|
"texture": "cc.drill"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,15 +1,16 @@
|
|||||||
## General messages
|
## General messages
|
||||||
message.trail.follow=Follow the trail
|
message.trail.follow=Follow the trail.
|
||||||
message.levels.completed=You have completed all levels!
|
message.levels.completed=You completed all the levels.
|
||||||
|
|
||||||
|
|
||||||
## Fail conditions
|
## Fail conditions
|
||||||
message.level.incorrect=§cIncorrect!§b
|
message.level.incorrect=§cIncorrect!
|
||||||
message.level.incorrect.subtext=Probeer opnieuw!
|
message.level.incorrect.subtext=Try again!
|
||||||
|
|
||||||
message.level.outofbounds=§cOut of bounds!§b
|
message.level.outofbounds=§cOut of bounds!
|
||||||
message.level.outofbounds.subtext=You can't be over water!
|
|
||||||
|
|
||||||
|
item.cc:chainsaw=Chainsaw
|
||||||
|
item.cc:drill=Drill
|
||||||
|
|
||||||
## npc names
|
## npc names
|
||||||
npc.name.help=Help
|
npc.name.help=Help
|
||||||
@@ -23,45 +24,87 @@ npc.name.turt=§aTurt
|
|||||||
npc.name.mo=§4Mo
|
npc.name.mo=§4Mo
|
||||||
npc.name.al=Al
|
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!
|
|
||||||
|
|
||||||
message.talkto.ramses=Talk to §dRamses
|
|
||||||
message.talkto.chanel=Talk to §9Chanel
|
message.talkto.chanel=Talk to §9Chanel
|
||||||
|
message.talkto.bilal=Talk to §6Bilal
|
||||||
|
message.talkto.farah=Talk to §5Farah
|
||||||
|
|
||||||
## Intro messages
|
## Intro messages
|
||||||
message.intro.started=Crack the Vault!
|
message.intro=Leave the treehouse and go down the ladder.
|
||||||
message.intro.make=Break the code!
|
|
||||||
message.intro.done=§aYou have cracked the code!§b
|
|
||||||
|
|
||||||
## Level 1 messages
|
## Level 1 messages
|
||||||
message.level1.name=Level 1
|
message.level1.name=Level 1
|
||||||
message.level1.started=Level 1 is started!
|
message.level1.started=Level 1 started!
|
||||||
message.level1.complete=Level 1 is complete!
|
message.level1.complete=Level 1 is completed!
|
||||||
message.level1.make=Make Level 1
|
message.level1.make=Make Level 1
|
||||||
message.level1.outOfBoun=§cOut of bounds!§bwd
|
message.level1.outOfBounds=§cOut of bounds!
|
||||||
|
|
||||||
## Level 2 messages
|
## Level 2 messages
|
||||||
message.level2.name=Level 2
|
message.level2.name=Level 2
|
||||||
message.level2.started=Level 2 is started!
|
message.level2.started=Level 2 started!
|
||||||
message.level2.complete=Level 2 is complete!
|
message.level2.complete=Level 2 is completed!
|
||||||
message.level2.make=Make Level 2
|
message.level2.make=Make Level 2
|
||||||
|
message.level2.outOfBounds=§cOut of bounds!
|
||||||
|
|
||||||
## Level 3 messages
|
## Level 3 messages
|
||||||
message.level3.name=Level 3
|
message.level3.name=Level 3
|
||||||
message.level3.started=Level 3 is started!
|
message.level3.started=Level 3 started!
|
||||||
message.level3.complete=Level 3 is complete!
|
message.level3.complete=Level 3 is completed!
|
||||||
message.level3.make=Make Level 3
|
message.level3.make=Make Level 3
|
||||||
|
message.level3.outOfBounds=§cOut of bounds!
|
||||||
|
|
||||||
## Goto messages
|
## Level 4 messages
|
||||||
message.goto.field.1=Go to the First Field
|
message.level4.name=Level 4
|
||||||
message.goto.field.2=Go to the Second Field
|
message.level4.started=Level 4 started!
|
||||||
message.goto.field.3=Go to the Last Field
|
message.level4.complete=Level 4 is completed!
|
||||||
|
message.level4.make=Make Level 4
|
||||||
|
message.level4.outOfBounds=§cOut of bounds!
|
||||||
|
|
||||||
chanel.greeting.1.text=Hello! I'm §9Chanel§0, the scientist. I'm here to help you with the vault.
|
## Level 5 messages
|
||||||
chanel.greeting.1.button=Ok!
|
message.level5.name=Level 5
|
||||||
|
message.level5.started=Level 5 started!
|
||||||
|
message.level5.complete=Level 5 is completed!
|
||||||
|
message.level5.make=Make Level 5
|
||||||
|
message.level5.outOfBounds=§cOut of bounds!
|
||||||
|
|
||||||
|
## End messages
|
||||||
|
message.end=You completed the mission!
|
||||||
|
|
||||||
|
## Npc messages
|
||||||
|
bilal.beforelevel.1.1.text=Hey you! This will be your last mission on the jungle planet. In this mission you will have to fight against poachers.
|
||||||
|
bilal.beforelevel.1.1.button=Poachers?
|
||||||
|
|
||||||
|
bilal.beforelevel.1.2.text=Poachers steal or kill animals to make money. That is why so many animalspecies are threatened with extinction by poachers.
|
||||||
|
bilal.beforelevel.1.2.button=How sad!
|
||||||
|
|
||||||
|
bilal.beforelevel.1.3.text=For the first assignment you have to try to collect 4 tools from the poachers, so that they no longer have any material to poach. You may choose how you get the tools, but you have to use loops.
|
||||||
|
bilal.beforelevel.1.3.button=OK!
|
||||||
|
|
||||||
|
bilal.afterlevel.1.1.text=Well done! Return to the learningplatform. But first: a little fact! Did you know that elephants and rhinos fall prey to poachers due to the high demand for ivory? It is a very popular product, especially in Asia.
|
||||||
|
bilal.afterlevel.1.1.button=O no!
|
||||||
|
|
||||||
|
chanel.beforelevel.2.1.text=In assignment 2, you will have to restore the fauna and flora of the jungle. There are three levels in total. After each level, you have to come back to me and I will explain what you will have to do in the next level. For level 1, program the following: if the Agent stands on a grassblock OR on a podzolblock, he plants a tree, otherwise he plants a bush.
|
||||||
|
chanel.beforelevel.2.1.button=Ok.
|
||||||
|
|
||||||
|
chanel.afterlevel.2.1.text=Onto the next level! If the Agent is on a grassblock AND standing next to bamboo, then he spawns a panda. Otherwise if the Agent is standing on a magmablock, then he replaces it with a cobblestoneblock. Else he places a bush.
|
||||||
|
chanel.afterlevel.2.1.button=Doe ik!
|
||||||
|
|
||||||
|
chanel.afterlevel.3.1.text=Hurray, already two levels completed! For level 3 you will need to program the following: Walk down the course until you come to a goldblock. If the Agent is standing on a grassblock AND is next to a bush, he spawns an ocelot. Otherwise if the Agent is standing next to a tree AND NOT on an ironblock, he spawns a parrot. Else if the Agent walks against a fence, he turns to the left, if the Agent walks against a torch, then he will turn to the right. Otherwise he does a 360 degree turn.
|
||||||
|
chanel.afterlevel.3.1.button=I will try!
|
||||||
|
|
||||||
|
chanel.afterlevel.4.1.text=You completed all the levels! Return to the learningplatform. But first: a little fact! Did you know that bushmeat is also a big reason why wildlife populations are declining? For example, in DR Congo alone, 1 million tons of bushmeat are consumed per year.
|
||||||
|
chanel.afterlevel.4.1.button=Why?
|
||||||
|
|
||||||
|
chanel.afterlevel.4.2.text=Especially in remote areas where it is difficult to keep cattle, bushmeat is often the only protein source available or affordable to people. But even in Belgium you can buy monkey meat, for example!
|
||||||
|
chanel.afterlevel.4.2.button=Oh dear!
|
||||||
|
|
||||||
|
farah.beforelevel.5.1.text=It is time for assignment 3. There is a course waiting for you where you have to get to the other side and end up on the goldblock. This way you can free the animals in the cages.
|
||||||
|
farah.beforelevel.5.1.button=How?
|
||||||
|
|
||||||
|
farah.beforelevel.5.2.text=Use atleast three of the following programblocks: Gebruik minstens drie van de volgende programmeerblokken: finite loop, conditional loop, multiple selection and boolean operators.
|
||||||
|
farah.beforelevel.5.2.button=OK!
|
||||||
|
|
||||||
|
farah.beforelevel.5.3.text=There are a few conditions:%s%s1. Don't walk on magmablocks or TNT%s2. Replace the stoneblocks that the Agent is standing with podzolblocks%s3. Spawn a parrot when the Agent is standing on a sandblock%s4. Spawn a panda when the Agent is standing on a grassblock and is next to bamboo%s5. Pick up the pickaxe and diamond if the Agent is standing them.
|
||||||
|
farah.beforelevel.5.3.button=I will try!
|
||||||
|
|
||||||
|
farah.afterlevel.5.1.text=Hooray, all the animals are out of the hands of the poachers! Return to the learning platform. But first, a fact! Did you know that hunting wild animals for consumption also poses major health risks? Many diseases originate in wild animals such as monkeys and bats. According to the World Health Organization (WHO), 75% of the last 30 emerging infections have been transmitted from animals to humans.
|
||||||
|
farah.afterlevel.5.1.button=Wow!
|
||||||
|
|||||||
@@ -1,3 +1 @@
|
|||||||
[
|
["en_US", "nl_NL"]
|
||||||
"en_US"
|
|
||||||
]
|
|
||||||
|
|||||||
110
resource_packs/texts/nl_NL.lang
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
## General messages
|
||||||
|
message.trail.follow=Volg het pad
|
||||||
|
message.levels.completed=Je hebt alle levels gemaakt.
|
||||||
|
|
||||||
|
|
||||||
|
## Fail conditions
|
||||||
|
message.level.incorrect=§cIncorrect!
|
||||||
|
message.level.incorrect.subtext=Probeer opnieuw!
|
||||||
|
|
||||||
|
message.level.outofbounds=§cBuiten de grenzen!
|
||||||
|
|
||||||
|
item.cc:chainsaw=Kettingzaag
|
||||||
|
item.cc:drill=Boor
|
||||||
|
|
||||||
|
## npc names
|
||||||
|
npc.name.help=Help
|
||||||
|
npc.name.suki=§2Suki
|
||||||
|
npc.name.bilal=§6Bilal
|
||||||
|
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
|
||||||
|
|
||||||
|
message.talkto.chanel=Praat met §9Chanel
|
||||||
|
message.talkto.bilal=Praat met §6Bilal
|
||||||
|
message.talkto.farah=Praat met §5Farah
|
||||||
|
|
||||||
|
## Intro messages
|
||||||
|
message.intro=Ga uit de boomhut en ga de ladder af.
|
||||||
|
|
||||||
|
## Level 1 messages
|
||||||
|
message.level1.name=Level 1
|
||||||
|
message.level1.started=Level 1 is begonnen!
|
||||||
|
message.level1.complete=Level 1 is voltooid!
|
||||||
|
message.level1.make=Maak Level 1
|
||||||
|
message.level1.outOfBounds=§cOut of bounds!
|
||||||
|
|
||||||
|
## Level 2 messages
|
||||||
|
message.level2.name=Level 2
|
||||||
|
message.level2.started=Level 2 is begonnen!
|
||||||
|
message.level2.complete=Level 2 is voltooid!
|
||||||
|
message.level2.make=Maak Level 2
|
||||||
|
message.level2.outOfBounds=§cOut of bounds!
|
||||||
|
|
||||||
|
## Level 3 messages
|
||||||
|
message.level3.name=Level 3
|
||||||
|
message.level3.started=Level 3 is begonnen!
|
||||||
|
message.level3.complete=Level 3 is voltooid!
|
||||||
|
message.level3.make=Maak Level 3
|
||||||
|
message.level3.outOfBounds=§cOut of bounds!
|
||||||
|
|
||||||
|
## Level 4 messages
|
||||||
|
message.level4.name=Level 4
|
||||||
|
message.level4.started=Level 4 is begonnen!
|
||||||
|
message.level4.complete=Level 4 is voltooid!
|
||||||
|
message.level4.make=Maak Level 4
|
||||||
|
message.level4.outOfBounds=§cOut of bounds!
|
||||||
|
|
||||||
|
## Level 5 messages
|
||||||
|
message.level5.name=Level 5
|
||||||
|
message.level5.started=Level 5 is begonnen!
|
||||||
|
message.level5.complete=Level 5 is voltooid!
|
||||||
|
message.level5.make=Maak Level 5
|
||||||
|
message.level5.outOfBounds=§cOut of bounds!
|
||||||
|
|
||||||
|
## End messages
|
||||||
|
message.end=Je hebt de missie voltooid!
|
||||||
|
|
||||||
|
## Npc messages
|
||||||
|
bilal.beforelevel.1.1.text=Hey jij! Dit wordt jouw laatste missie op de jungleplaneet. Je zal het in deze missie moeten opnemen tegen stropers.
|
||||||
|
bilal.beforelevel.1.1.button=Stropers?
|
||||||
|
|
||||||
|
bilal.beforelevel.1.2.text=Stropers stelen of doden dieren om er geld mee te verdienen. Zo zijn veel diersoorten met uitsterven bedreigd door stropers.
|
||||||
|
bilal.beforelevel.1.2.button=Wat erg!
|
||||||
|
|
||||||
|
bilal.beforelevel.1.3.text=Voor de eerste opdracht probeer je alle 4 de voorwerpen van de stropers op te rapen, zodat ze geen materiaal meer hebben om te stropen. Je mag zelf kiezen hoe je tot het voorwerp komt, maar je moet gebruik maken van lussen.
|
||||||
|
bilal.beforelevel.1.3.button=OK!
|
||||||
|
|
||||||
|
bilal.afterlevel.1.1.text=Goed gedaan! Ga nu terug naar het leerplatform. Maar eerst: een weetje! Wist je dat olifanten en neushoorns ten prooi vallen aan stropers door de grote vraag naar ivoor? Vooral in Azië is het een heel populair product.
|
||||||
|
bilal.afterlevel.1.1.button=O nee!
|
||||||
|
|
||||||
|
chanel.beforelevel.2.1.text=In opdracht 2 zal je de fauna en de flora van de jungle moeten herstellen. Er zijn er drie levels in totaal. Na elk level kom je terug naar mij en leg ik je het volgende level uit. Voor level 1 programmeer je het volgende: als de Agent op een grasblok OF op een podzolblok staat, dan plant hij een boom. Anders plant hij een struik.
|
||||||
|
chanel.beforelevel.2.1.button=Ok.
|
||||||
|
|
||||||
|
chanel.afterlevel.2.1.text=Op naar het volgende level! Als de Agent op een grasblok EN naast bamboe staat, dan spawnt hij een panda. Anders als de Agent op een magmablok staat, dan vervangt hij de magmablok met een keisteenblok. Anders plaatst hij een struik.
|
||||||
|
chanel.afterlevel.2.1.button=Doe ik!
|
||||||
|
|
||||||
|
chanel.afterlevel.3.1.text=Hoera, al twee levels volbracht! Voor level 3 programmeer je het volgende: Wandel het parcours af tot je op een goudblok komt. Als de Agent op een grasblok EN naast een struik staat, spawnt hij een ocelot, anders als de Agent naast een boom EN NIET op een ijzerblok staat, dan spawnt hij een papegaai. Anders als de Agent tegen een hek loopt, gaat hij naar links. Anders als de Agent tegen een fakkel komt, dan gaat hij naar rechts. Anders draait hij een toertje.
|
||||||
|
chanel.afterlevel.3.1.button=Ik probeer!
|
||||||
|
|
||||||
|
chanel.afterlevel.4.1.text=Je hebt alle levels voltooid! Nu kan je terug naar het leerplatform. Maar eerst: een weetje! Wist je dat oerwoudvlees (bushmeat) ook een grote reden is waarom de populatie van wilde dieren daalt? Zo wordt in het DR Congo alleen al 1 miljoen ton bushmeat per jaar geconsumeerd.
|
||||||
|
chanel.afterlevel.4.1.button=Waarom?
|
||||||
|
|
||||||
|
chanel.afterlevel.4.2.text=Vooral in afgelegen gebieden waar het lastig is om vee te houden, is bushmeat vaak de enige proteïnebron die beschikbaar of betaalbaar is voor mensen. Maar zelfs in België kan je bijvoorbeeld apenvlees kopen!
|
||||||
|
chanel.afterlevel.4.2.button=Oei!
|
||||||
|
|
||||||
|
farah.beforelevel.5.1.text=Het is tijd voor opdracht 3. Er staat een parcours op jou te wachten waarbij je naar de overkant moet geraken en op het goudblok moet eindigen. Zo kan je de dieren in de kooien bevrijden.
|
||||||
|
farah.beforelevel.5.1.button=Hoe?
|
||||||
|
|
||||||
|
farah.beforelevel.5.2.text=Gebruik minstens drie van de volgende programmeerblokken: eindige lus, conditionele lus, meervoudige selectie en booleaanse operatoren.
|
||||||
|
farah.beforelevel.5.2.button=OK!
|
||||||
|
|
||||||
|
farah.beforelevel.5.3.text=Er zijn ook nog enkele voorwaarden:%s%s1. Wandel niet op magmablokken of op TNT%s2. Verander de steenblokken waar de Agent op staat door ze te veranderen in podzolblokken%s3. Spawn een papegaai als de Agent op een zandblok staat.%s4. Spawn een panda als de Agent op een grasblok staat EN naast bamboe.%s5. Raap een pikhouweel en een diamant op als de Agent er op staat.
|
||||||
|
farah.beforelevel.5.3.button=Ik probeer!
|
||||||
|
|
||||||
|
farah.afterlevel.5.1.text=Hoera, alle dieren zijn uit handen van de stropers! Ga terug naar het leerplatform. Maar eerst, een weetje! Wist je dat de jacht op wilde dieren voor consumptie ook grote gezondheidsrisico’s met zich meebrengt? Veel ziektes kennen hun oorsprong bij wilde dieren zoals apen en vleermuizen. Volgens de World Health Organization (WHO) zijn 75% van de laatste 30 opkomende infecties, overgedragen van dier op mens.
|
||||||
|
farah.afterlevel.5.1.button=Wow!
|
||||||
|
Before Width: | Height: | Size: 392 B |
|
Before Width: | Height: | Size: 107 B |
|
Before Width: | Height: | Size: 107 B |
BIN
resource_packs/textures/blocks/wool_colored_blue.png
Normal file
|
After Width: | Height: | Size: 483 B |
BIN
resource_packs/textures/blocks/wool_colored_green.png
Normal file
|
After Width: | Height: | Size: 468 B |
BIN
resource_packs/textures/blocks/wool_colored_purple.png
Normal file
|
After Width: | Height: | Size: 657 B |
BIN
resource_packs/textures/blocks/wool_colored_red.png
Normal file
|
After Width: | Height: | Size: 623 B |
BIN
resource_packs/textures/blocks/wool_colored_yellow.png
Normal file
|
After Width: | Height: | Size: 576 B |
12
resource_packs/textures/item_texture.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"resource_pack_name": "cc",
|
||||||
|
"texture_name": "atlas.items",
|
||||||
|
"texture_data": {
|
||||||
|
"cc.drill": {
|
||||||
|
"textures": "textures/items/drill"
|
||||||
|
},
|
||||||
|
"cc.chainsaw": {
|
||||||
|
"textures": "textures/items/chainsaw"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
resource_packs/textures/items/chainsaw.png
Normal file
|
After Width: | Height: | Size: 339 B |
BIN
resource_packs/textures/items/drill.png
Normal file
|
After Width: | Height: | Size: 446 B |
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"texture_name": "atlas.terrain",
|
|
||||||
"resource_pack_name": "cc",
|
|
||||||
"padding": 8,
|
|
||||||
"num_mip_levels": 4,
|
|
||||||
"texture_data": {
|
|
||||||
"cracked_glass": {
|
|
||||||
"textures": "textures/blocks/cracked_glass"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -95,7 +95,7 @@ export class Manager {
|
|||||||
players.forEach((player) => {
|
players.forEach((player) => {
|
||||||
// player.sendMessage(`Player ${player.name} is in trigger ${trigger.IsPlayerInside(player)}`);
|
// player.sendMessage(`Player ${player.name} is in trigger ${trigger.IsPlayerInside(player)}`);
|
||||||
if (trigger.hasPlayerEnterdTrigger(player)) {
|
if (trigger.hasPlayerEnterdTrigger(player)) {
|
||||||
world.sendMessage(`Player ${player.name} entered trigger`);
|
// world.sendMessage(`Player ${player.name} entered trigger`);
|
||||||
//Check if a function trigger is set
|
//Check if a function trigger is set
|
||||||
const isFunctionSet = this.functionTriggers.has(trigger.eventToDispatch);
|
const isFunctionSet = this.functionTriggers.has(trigger.eventToDispatch);
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { World } from "@minecraft/server";
|
import { world, World } from "@minecraft/server";
|
||||||
|
|
||||||
class Level {
|
class Level {
|
||||||
levelCompleteCallback: Function;
|
levelCompleteCallback: Function;
|
||||||
@@ -35,6 +35,7 @@ class Level {
|
|||||||
this.levelUpdateCallback();
|
this.levelUpdateCallback();
|
||||||
if (this.levelCheckCallback() && !this.isCompleted) {
|
if (this.levelCheckCallback() && !this.isCompleted) {
|
||||||
this.levelCompleteCallback();
|
this.levelCompleteCallback();
|
||||||
|
world.sendMessage("level completed.");
|
||||||
this.isCompleted = true;
|
this.isCompleted = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import { BlockType, Vector3, World } from "@minecraft/server";
|
import { Vector3, world, World } from "@minecraft/server";
|
||||||
|
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
||||||
|
import { vector3 } from "../utils/vectorUtils";
|
||||||
|
|
||||||
export type blockCondition = {
|
export type blockCondition = {
|
||||||
block: string;
|
block: (string | MinecraftBlockTypes)[];
|
||||||
position: Vector3;
|
position: Vector3;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -14,7 +16,7 @@ export type blockCondition = {
|
|||||||
* @throws Throws an error if there is no lever at the specified position.
|
* @throws Throws an error if there is no lever at the specified position.
|
||||||
*/
|
*/
|
||||||
export function leverOn(world: World, position: Vector3): boolean {
|
export function leverOn(world: World, position: Vector3): boolean {
|
||||||
let lever = world.getDimension("overworld").getBlock(position);
|
const lever = world.getDimension("overworld").getBlock(position);
|
||||||
if (!(lever?.typeId == "minecraft:lever")) {
|
if (!(lever?.typeId == "minecraft:lever")) {
|
||||||
throw new Error(`No lever at ${position}`);
|
throw new Error(`No lever at ${position}`);
|
||||||
}
|
}
|
||||||
@@ -42,3 +44,14 @@ export type AgentNoGoZone = {
|
|||||||
export type LevelNoGoZone = {
|
export type LevelNoGoZone = {
|
||||||
zones: AgentNoGoZone[];
|
zones: AgentNoGoZone[];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const checkBlockCondition = (condition: LevelBlockCondition): boolean => {
|
||||||
|
let isComplete: boolean = true;
|
||||||
|
condition.conditions.forEach((condition) => {
|
||||||
|
const block = world.getDimension("overworld").getBlock(condition.position);
|
||||||
|
if (condition.block.indexOf(block!.typeId) === -1) {
|
||||||
|
isComplete = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return isComplete;
|
||||||
|
};
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ function rotate(pos: Vector3, angle: number) {
|
|||||||
|
|
||||||
const particleData = new MolangVariableMap();
|
const particleData = new MolangVariableMap();
|
||||||
particleData.setColorRGB("variable.color", {
|
particleData.setColorRGB("variable.color", {
|
||||||
red: 1,
|
red: 0,
|
||||||
green: 1,
|
green: 0.5,
|
||||||
blue: 1,
|
blue: 1,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
15
scripts/Commandeer/utils/entityUtils.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import { system, world } from "@minecraft/server";
|
||||||
|
|
||||||
|
function runEntityEventOnTag(tag: string, event: string) {
|
||||||
|
system.run(() => {
|
||||||
|
world.getDimension("overworld").runCommand(`/event entity @e[tag=${tag}] ${event}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function setNPCDialog(npcTag: string, dialogId: string) {
|
||||||
|
system.run(() => {
|
||||||
|
world.getDimension("overworld").runCommand(`/dialogue change @e[tag=${npcTag}] ${dialogId} @a`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export { runEntityEventOnTag, setNPCDialog };
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
import { BlockType, BlockTypes, BlockVolume, Vector3, world } from "@minecraft/server";
|
import { BlockType, BlockTypes, BlockVolume, Vector3, world } from "@minecraft/server";
|
||||||
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
||||||
|
import { vector3 } from "./vectorUtils";
|
||||||
|
|
||||||
type Wall = {
|
type Wall = {
|
||||||
startPos: Vector3;
|
startPos: Vector3;
|
||||||
@@ -20,5 +21,19 @@ function startLevel(commandBlockPos: Vector3) {
|
|||||||
let volume: BlockVolume = new BlockVolume(commandBlockPos, commandBlockPos);
|
let volume: BlockVolume = new BlockVolume(commandBlockPos, commandBlockPos);
|
||||||
world.getDimension("overworld").fillBlocks(volume, MinecraftBlockTypes.RedstoneBlock);
|
world.getDimension("overworld").fillBlocks(volume, MinecraftBlockTypes.RedstoneBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function teleportAndFaceAgent(position: Vector3, facing: Vector3 = vector3(0, 0, 0)): void {
|
||||||
|
world
|
||||||
|
.getDimension("overworld")
|
||||||
|
.runCommand(
|
||||||
|
`/execute as @a run tp @e[type=agent] ${position.x} ${position.y} ${position.z} facing ${facing.x} ${facing.y} ${facing.z}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function placeBlock(position: Vector3, blockType: MinecraftBlockTypes) {
|
||||||
|
const block = world.getDimension("overworld").getBlock(position);
|
||||||
|
block!.setType(blockType);
|
||||||
|
}
|
||||||
|
|
||||||
BlockTypes;
|
BlockTypes;
|
||||||
export { Wall, clearWall, fillWall, startLevel };
|
export { Wall, clearWall, fillWall, startLevel, teleportAndFaceAgent, placeBlock };
|
||||||
|
|||||||
59
scripts/Commandeer/utils/smallArrow.ts
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
import { MolangVariableMap, Vector3, world } from "@minecraft/server";
|
||||||
|
import { Vector3Add, vector3 } from "./vectorUtils";
|
||||||
|
import { PARTICLES, spawnParticle } from "./particleUtils";
|
||||||
|
|
||||||
|
let arrowTemplate: Vector3[] = [
|
||||||
|
vector3(0, 0, 0),
|
||||||
|
|
||||||
|
vector3(0.5, 0.5, 0),
|
||||||
|
vector3(-0.5, 0.5, 0),
|
||||||
|
|
||||||
|
vector3(0.75, 1, 0),
|
||||||
|
vector3(-0.75, 1, 0),
|
||||||
|
|
||||||
|
vector3(0, 0.5, 0),
|
||||||
|
vector3(0, 1, 0),
|
||||||
|
vector3(0, 1.5, 0),
|
||||||
|
vector3(0, 2, 0),
|
||||||
|
vector3(0, 2.5, 0),
|
||||||
|
];
|
||||||
|
|
||||||
|
let offset: Vector3 = vector3(0, 0, 0);
|
||||||
|
|
||||||
|
let angleOffset = 0;
|
||||||
|
let heightBobbing = 0;
|
||||||
|
let tickCounter = 0;
|
||||||
|
|
||||||
|
function rotate(pos: Vector3, angle: number) {
|
||||||
|
let x = pos.x;
|
||||||
|
let z = pos.z;
|
||||||
|
|
||||||
|
let newX = x * Math.cos(angle) - z * Math.sin(angle);
|
||||||
|
let newZ = x * Math.sin(angle) + z * Math.cos(angle);
|
||||||
|
|
||||||
|
return vector3(newX, pos.y, newZ);
|
||||||
|
}
|
||||||
|
|
||||||
|
const particleData = new MolangVariableMap();
|
||||||
|
particleData.setColorRGB("variable.color", {
|
||||||
|
red: 0,
|
||||||
|
green: 0.5,
|
||||||
|
blue: 1,
|
||||||
|
});
|
||||||
|
|
||||||
|
function drawSmallArrow(offsetPos: Vector3) {
|
||||||
|
tickCounter++;
|
||||||
|
if (tickCounter % 2 == 0) {
|
||||||
|
angleOffset += 0.1;
|
||||||
|
heightBobbing += 0.3;
|
||||||
|
offset = vector3(46.5, 75, 220.5);
|
||||||
|
arrowTemplate.forEach((pos) => {
|
||||||
|
let rotatedPos = rotate(pos, angleOffset);
|
||||||
|
let finalPos = Vector3Add(offsetPos, rotatedPos);
|
||||||
|
finalPos.y += Math.sin(heightBobbing) / 2;
|
||||||
|
spawnParticle(finalPos, PARTICLES.point, particleData);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export { drawSmallArrow };
|
||||||
@@ -1,141 +0,0 @@
|
|||||||
import { BlockType, Vector3 } from "@minecraft/server";
|
|
||||||
import { LevelBlockCondition, LevelNoGoZone } from "../Commandeer/level/levelTypes";
|
|
||||||
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
|
||||||
import { MinecraftBlockTypes } from "../vanilla-data/mojang-block";
|
|
||||||
|
|
||||||
let level1Conditions: LevelBlockCondition = {
|
|
||||||
conditions: [
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(55, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(56, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(57, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(58, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(59, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(60, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(61, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(62, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(63, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(65, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(66, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(67, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(68, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(69, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(70, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(71, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(72, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(73, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(74, 70, 216),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(74, 70, 216),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
let level1NoGoZones: LevelNoGoZone = {
|
|
||||||
zones: [
|
|
||||||
{ position: vector3(55, 70, 215) },
|
|
||||||
{ position: vector3(56, 70, 215) },
|
|
||||||
{ position: vector3(57, 70, 215) },
|
|
||||||
{ position: vector3(58, 70, 215) },
|
|
||||||
{ position: vector3(59, 70, 215) },
|
|
||||||
{ position: vector3(60, 70, 215) },
|
|
||||||
{ position: vector3(61, 70, 215) },
|
|
||||||
{ position: vector3(62, 70, 215) },
|
|
||||||
{ position: vector3(63, 70, 215) },
|
|
||||||
{ position: vector3(64, 70, 215) },
|
|
||||||
{ position: vector3(65, 70, 215) },
|
|
||||||
{ position: vector3(66, 70, 215) },
|
|
||||||
{ position: vector3(67, 70, 215) },
|
|
||||||
{ position: vector3(68, 70, 215) },
|
|
||||||
{ position: vector3(69, 70, 215) },
|
|
||||||
{ position: vector3(70, 70, 215) },
|
|
||||||
{ position: vector3(71, 70, 215) },
|
|
||||||
{ position: vector3(72, 70, 215) },
|
|
||||||
{ position: vector3(73, 70, 215) },
|
|
||||||
{ position: vector3(74, 70, 215) },
|
|
||||||
|
|
||||||
{ position: vector3(55, 70, 217) },
|
|
||||||
{ position: vector3(56, 70, 217) },
|
|
||||||
{ position: vector3(57, 70, 217) },
|
|
||||||
{ position: vector3(58, 70, 217) },
|
|
||||||
{ position: vector3(59, 70, 217) },
|
|
||||||
{ position: vector3(60, 70, 217) },
|
|
||||||
{ position: vector3(61, 70, 217) },
|
|
||||||
{ position: vector3(62, 70, 217) },
|
|
||||||
{ position: vector3(63, 70, 217) },
|
|
||||||
{ position: vector3(64, 70, 217) },
|
|
||||||
{ position: vector3(65, 70, 217) },
|
|
||||||
{ position: vector3(66, 70, 217) },
|
|
||||||
{ position: vector3(67, 70, 217) },
|
|
||||||
{ position: vector3(68, 70, 217) },
|
|
||||||
{ position: vector3(69, 70, 217) },
|
|
||||||
{ position: vector3(70, 70, 217) },
|
|
||||||
{ position: vector3(71, 70, 217) },
|
|
||||||
{ position: vector3(72, 70, 217) },
|
|
||||||
{ position: vector3(73, 70, 217) },
|
|
||||||
{ position: vector3(74, 70, 217) },
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
export { level1Conditions, level1NoGoZones };
|
|
||||||
@@ -6,138 +6,316 @@ import { MinecraftBlockTypes } from "../vanilla-data/mojang-block";
|
|||||||
let level2Conditions: LevelBlockCondition = {
|
let level2Conditions: LevelBlockCondition = {
|
||||||
conditions: [
|
conditions: [
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(45, 70, 220),
|
position: vector3(-112, 69, 272),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(44, 70, 220),
|
position: vector3(-112, 69, 271),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(43, 70, 220),
|
position: vector3(-111, 69, 271),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(42, 70, 220),
|
position: vector3(-111, 69, 270),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(41, 70, 220),
|
position: vector3(-111, 69, 269),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(40, 70, 220),
|
position: vector3(-113, 69, 271),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(39, 70, 220),
|
position: vector3(-114, 69, 271),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(38, 70, 220),
|
position: vector3(-114, 69, 270),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(37, 70, 220),
|
position: vector3(-115, 69, 270),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(36, 70, 220),
|
position: vector3(-115, 69, 269),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(35, 70, 220),
|
position: vector3(-115, 69, 268),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(34, 70, 220),
|
position: vector3(-116, 69, 268),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(33, 70, 220),
|
position: vector3(-116, 69, 269),
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(33, 70, 219),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(33, 70, 218),
|
position: vector3(-117, 69, 267),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(33, 70, 217),
|
position: vector3(-117, 69, 266),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(33, 70, 216),
|
position: vector3(-117, 69, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(33, 70, 215),
|
position: vector3(-117, 69, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(33, 70, 214),
|
position: vector3(-117, 69, 263),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(33, 70, 213),
|
position: vector3(-116, 69, 261),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(33, 70, 212),
|
position: vector3(-116, 69, 262),
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(34, 70, 212),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(35, 70, 212),
|
position: vector3(-116, 69, 263),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(36, 70, 212),
|
position: vector3(-116, 69, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(37, 70, 212),
|
position: vector3(-116, 69, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(38, 70, 212),
|
position: vector3(-116, 69, 266),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(39, 70, 212),
|
position: vector3(-118, 69, 268),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(40, 70, 212),
|
position: vector3(-118, 69, 267),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(41, 70, 212),
|
position: vector3(-119, 69, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(42, 70, 212),
|
position: vector3(-119, 69, 267),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(43, 70, 212),
|
position: vector3(-119, 69, 268),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(44, 70, 212),
|
position: vector3(-120, 69, 269),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
position: vector3(45, 70, 212),
|
position: vector3(-120, 69, 268),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-120, 69, 267),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-121, 69, 269),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-122, 69, 268),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-123, 69, 267),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-123, 69, 266),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-122, 69, 266),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-121, 69, 265),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-122, 69, 265),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-123, 69, 265),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-123, 69, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-122, 69, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-122, 69, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-122, 69, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-119, 69, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-118, 69, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-118, 69, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-119, 69, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-120, 69, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-122, 69, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-124, 69, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-124, 69, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-122, 69, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-122, 69, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.JungleSapling],
|
||||||
|
position: vector3(-123, 69, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-113, 69, 269),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-114, 69, 269),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-114, 69, 268),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-116, 69, 267),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-117, 69, 269),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-117, 69, 268),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-117, 69, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-117, 69, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-118, 69, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-118, 69, 265),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-118, 69, 266),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-119, 69, 266),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-120, 69, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-121, 69, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-121, 69, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-121, 69, 266),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-121, 69, 267),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-121, 69, 268),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-122, 69, 267),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-122, 69, 264),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-123, 69, 264),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-123, 69, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Air, MinecraftBlockTypes.SweetBerryBush],
|
||||||
|
position: vector3(-123, 69, 259),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,138 +1,509 @@
|
|||||||
import { BlockType, Vector3 } from "@minecraft/server";
|
import { BlockType, Vector3 } from "@minecraft/server";
|
||||||
import { LevelBlockCondition } from "../Commandeer/level/levelTypes";
|
import { LevelBlockCondition, LevelNoGoZone } from "../Commandeer/level/levelTypes";
|
||||||
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
||||||
import { MinecraftBlockTypes } from "../vanilla-data/mojang-block";
|
import { MinecraftBlockTypes } from "../vanilla-data/mojang-block";
|
||||||
|
|
||||||
let level3Conditions: LevelBlockCondition = {
|
let level3Conditions: LevelBlockCondition = {
|
||||||
conditions: [
|
conditions: [
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(57, 70, 235),
|
position: vector3(-134, 67, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(58, 70, 235),
|
position: vector3(-135, 67, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
position: vector3(59, 70, 235),
|
position: vector3(-136, 67, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
position: vector3(60, 70, 235),
|
position: vector3(-137, 67, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(60, 70, 234),
|
position: vector3(-138, 67, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
position: vector3(60, 70, 233),
|
position: vector3(-139, 67, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
position: vector3(60, 70, 232),
|
position: vector3(-141, 67, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(60, 70, 231),
|
position: vector3(-146, 67, 265),
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(61, 70, 231),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(62, 70, 231),
|
position: vector3(-147, 67, 265),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(63, 70, 231),
|
position: vector3(-133, 67, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(64, 70, 231),
|
position: vector3(-134, 67, 264),
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 232),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
position: vector3(64, 70, 233),
|
position: vector3(-135, 67, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(64, 70, 234),
|
position: vector3(-136, 67, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(64, 70, 235),
|
position: vector3(-138, 67, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
position: vector3(64, 70, 236),
|
position: vector3(-139, 67, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(64, 70, 237),
|
position: vector3(-140, 67, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(64, 70, 238),
|
position: vector3(-141, 67, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
position: vector3(64, 70, 239),
|
position: vector3(-145, 67, 264),
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(65, 70, 239),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
position: vector3(66, 70, 239),
|
position: vector3(-146, 67, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(67, 70, 239),
|
position: vector3(-147, 67, 264),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(68, 70, 239),
|
position: vector3(-148, 67, 264),
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(68, 70, 238),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(68, 70, 237),
|
position: vector3(-133, 67, 263),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
position: vector3(68, 70, 236),
|
position: vector3(-135, 67, 263),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(68, 70, 235),
|
position: vector3(-137, 67, 263),
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(69, 70, 235),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
position: vector3(70, 70, 235),
|
position: vector3(-138, 67, 263),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
block: MinecraftBlockTypes.Air,
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
position: vector3(71, 70, 235),
|
position: vector3(-139, 67, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-140, 67, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-141, 67, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-142, 67, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-143, 67, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-144, 67, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-145, 67, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-146, 67, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-147, 67, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 263),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-133, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-134, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-135, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-138, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-139, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-140, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-142, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-143, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-144, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-145, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-147, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 262),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-133, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-134, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-135, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-136, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-138, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-139, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-140, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-141, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-142, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-143, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-145, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-146, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-147, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 261),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-133, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-134, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-135, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-136, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-137, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-138, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-139, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-141, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-142, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-143, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-144, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-145, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-147, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-148, 67, 260),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-133, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-134, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-135, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-136, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-137, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-138, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-139, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-140, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-141, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-142, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-143, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-144, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-145, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-146, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-147, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 259),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-133, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-134, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-138, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-139, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-140, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-141, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-142, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-143, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-144, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-145, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-146, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-147, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 258),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-145, 67, 266),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-145, 67, 267),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-145, 67, 269),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-146, 67, 266),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-146, 67, 269),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Magma, MinecraftBlockTypes.Cobblestone],
|
||||||
|
position: vector3(-146, 67, 270),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-146, 67, 272),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-147, 67, 266),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-147, 67, 267),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-147, 67, 268),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-147, 67, 269),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-147, 67, 270),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-147, 67, 271),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-147, 67, 272),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.Podzol],
|
||||||
|
position: vector3(-148, 67, 266),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 267),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 268),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 269),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 270),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 271),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
block: [MinecraftBlockTypes.GrassBlock],
|
||||||
|
position: vector3(-148, 67, 272),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,140 +0,0 @@
|
|||||||
import { BlockType, Vector3 } from "@minecraft/server";
|
|
||||||
import { LevelBlockCondition } from "../Commandeer/level/levelTypes";
|
|
||||||
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
|
||||||
import { MinecraftBlockTypes } from "../vanilla-data/mojang-block";
|
|
||||||
|
|
||||||
let level3Conditions: LevelBlockCondition = {
|
|
||||||
conditions: [
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(57, 70, 235),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(58, 70, 235),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(59, 70, 235),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(60, 70, 235),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(60, 70, 234),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(60, 70, 233),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(60, 70, 232),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(60, 70, 231),
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(61, 70, 231),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(62, 70, 231),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(63, 70, 231),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 231),
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 232),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 233),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 234),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 235),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 236),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 237),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 238),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(64, 70, 239),
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(65, 70, 239),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(66, 70, 239),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(67, 70, 239),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(68, 70, 239),
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(68, 70, 238),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(68, 70, 237),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(68, 70, 236),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(68, 70, 235),
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(69, 70, 235),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(70, 70, 235),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.Air,
|
|
||||||
position: vector3(71, 70, 235),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
export { level3Conditions };
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
import { LevelBlockCondition, LevelLeverCondition } from "../Commandeer/level/levelTypes";
|
|
||||||
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
|
||||||
import { MinecraftBlockTypes } from "../vanilla-data/mojang-block";
|
|
||||||
|
|
||||||
let levelIntroConditions: LevelBlockCondition = {
|
|
||||||
conditions: [
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.EmeraldBlock,
|
|
||||||
position: vector3(2471, 12, 108),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.EmeraldBlock,
|
|
||||||
position: vector3(2469, 12, 108),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.LapisBlock,
|
|
||||||
position: vector3(2468, 12, 108),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
block: MinecraftBlockTypes.LapisBlock,
|
|
||||||
position: vector3(2464, 12, 108),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
export { levelIntroConditions };
|
|
||||||
@@ -1,24 +1,46 @@
|
|||||||
import { BlockType, BlockTypes, Vector3, world } from "@minecraft/server";
|
import {
|
||||||
|
BlockType,
|
||||||
|
BlockTypes,
|
||||||
|
BlockVolume,
|
||||||
|
EntityInventoryComponent,
|
||||||
|
Player,
|
||||||
|
Vector3,
|
||||||
|
world,
|
||||||
|
} from "@minecraft/server";
|
||||||
import Level from "../../Commandeer/level/level";
|
import Level from "../../Commandeer/level/level";
|
||||||
import pupeteer from "../../Commandeer/pupeteer";
|
import pupeteer from "../../Commandeer/pupeteer";
|
||||||
import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils";
|
import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils";
|
||||||
import { startLevel } from "../../Commandeer/utils/levelUtils";
|
import { placeBlock, startLevel, teleportAndFaceAgent } from "../../Commandeer/utils/levelUtils";
|
||||||
import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils";
|
import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils";
|
||||||
import { level1Conditions } from "../../levelConditions/level1";
|
|
||||||
import { mindKeeper, CURRENT_LEVEL } from "../../main";
|
import { mindKeeper, CURRENT_LEVEL } from "../../main";
|
||||||
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
||||||
|
import { MinecraftBiomeTypes } from "../../vanilla-data/mojang-biome";
|
||||||
|
import level2 from "../level2/mission1";
|
||||||
|
|
||||||
const Level1CommandBlockPos: Vector3 = vector3(-73, 71, 283);
|
const Level1CommandBlockPos: Vector3 = vector3(-73, 71, 283);
|
||||||
|
const level1StartPosition: Vector3 = vector3(-73, 69, 272);
|
||||||
|
const Level1EndPosition: Vector3 = vector3(-83, 69, 258);
|
||||||
|
let toolPositions = [vector3(-75, 68, 268), vector3(-77, 68, 266), vector3(-79, 68, 264), vector3(-81, 68, 262)];
|
||||||
|
|
||||||
const level1StartPosition: Vector3 = vector3(-73, 69, 267);
|
let toolBlocks = [
|
||||||
const Level1EndPosition: Vector3 = vector3(-82, 69, 265);
|
MinecraftBlockTypes.RedWool,
|
||||||
|
MinecraftBlockTypes.GreenWool,
|
||||||
|
MinecraftBlockTypes.YellowWool,
|
||||||
|
MinecraftBlockTypes.BlueWool,
|
||||||
|
];
|
||||||
|
|
||||||
|
let noDrillYet = true;
|
||||||
|
let noChainsawYet = true;
|
||||||
|
let isComplete = false;
|
||||||
|
let hasAllTools = false;
|
||||||
|
let isOutOfBounds = false;
|
||||||
|
|
||||||
const level1ResetCommandBlockPos: Vector3 = vector3(56, 68, 211);
|
|
||||||
const level1: Level = new Level(
|
const level1: Level = new Level(
|
||||||
() => {
|
() => {
|
||||||
pupeteer.sendWorldMessage("%message.level1.started");
|
pupeteer.sendWorldMessage("%message.level1.started");
|
||||||
pupeteer.setTitleTimed("%message.level1.name", 2.5);
|
pupeteer.setTitleTimed("%message.level1.name", 2.5);
|
||||||
startLevel(Level1CommandBlockPos);
|
startLevel(Level1CommandBlockPos);
|
||||||
teleportAgent(level1StartPosition);
|
teleportAndFaceAgent(level1StartPosition, vector3(-84, 69, 272));
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
pupeteer.setActionBar("%message.level1.make");
|
pupeteer.setActionBar("%message.level1.make");
|
||||||
@@ -27,42 +49,85 @@ const level1: Level = new Level(
|
|||||||
pupeteer.clearActionBar();
|
pupeteer.clearActionBar();
|
||||||
pupeteer.sendWorldMessage("%message.level1.complete");
|
pupeteer.sendWorldMessage("%message.level1.complete");
|
||||||
pupeteer.setTitleTimed("%message.level1.complete", 2.5);
|
pupeteer.setTitleTimed("%message.level1.complete", 2.5);
|
||||||
|
world.getDimension("Overworld").runCommand("/fill -86 71 253 -86 75 275 air replace barrier");
|
||||||
mindKeeper.increment(CURRENT_LEVEL);
|
mindKeeper.increment(CURRENT_LEVEL);
|
||||||
|
level2.reset();
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
let isComplete = false;
|
for (let i = 0; i < toolPositions.length; i++) {
|
||||||
let isOutOfBounds = false;
|
let block = world.getDimension("overworld").getBlock(toolPositions[i]);
|
||||||
let hasAllTools = false;
|
if (block?.type.id == MinecraftBlockTypes.Air) {
|
||||||
|
toolPositions.splice(i, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//6 blocks lower is lava
|
let drillBlock = world.getDimension("overworld").getBlock(vector3(-75, 68, 268));
|
||||||
|
if (drillBlock?.type.id == MinecraftBlockTypes.Air && noDrillYet) {
|
||||||
|
noDrillYet = false;
|
||||||
|
let volume: BlockVolume = new BlockVolume(vector3(-70, 71, 285), vector3(-70, 71, 285));
|
||||||
|
world.getDimension("overworld").fillBlocks(volume, MinecraftBlockTypes.RedstoneBlock);
|
||||||
|
}
|
||||||
|
|
||||||
|
let chainsawBlock = world.getDimension("overworld").getBlock(vector3(-79, 68, 264));
|
||||||
|
if (chainsawBlock?.type.id == MinecraftBlockTypes.Air && noChainsawYet) {
|
||||||
|
noChainsawYet = false;
|
||||||
|
let volume: BlockVolume = new BlockVolume(vector3(-69, 71, 285), vector3(-69, 71, 285));
|
||||||
|
world.getDimension("overworld").fillBlocks(volume, MinecraftBlockTypes.RedstoneBlock);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (toolPositions.length == 0) {
|
||||||
|
hasAllTools = true;
|
||||||
|
}
|
||||||
|
|
||||||
let agentPos = getAgentLocation();
|
let agentPos = getAgentLocation();
|
||||||
let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
|
let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
|
||||||
|
let blockBarrier = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -2, 0)));
|
||||||
|
|
||||||
if (blockAir && blockAir.type.id === MinecraftBlockTypes.Air) {
|
if (blockAir && blockAir.type.id === MinecraftBlockTypes.Air) {
|
||||||
|
if (blockBarrier && blockBarrier.type.id === MinecraftBlockTypes.Barrier) {
|
||||||
|
isOutOfBounds = false;
|
||||||
|
} else {
|
||||||
|
isOutOfBounds = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isAgentAt(Level1EndPosition) && hasAllTools) {
|
||||||
|
isComplete = true;
|
||||||
|
} else if (isAgentAt(Level1EndPosition) && !hasAllTools) {
|
||||||
isOutOfBounds = true;
|
isOutOfBounds = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isAgentAt(Level1EndPosition) && hasAllTools) {
|
|
||||||
isComplete = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// world.sendMessage(`isComplete: ${isComplete}`);
|
|
||||||
// world.sendMessage(`isOutOfBounds: ${isOutOfBounds}`);
|
|
||||||
|
|
||||||
if (isOutOfBounds) {
|
if (isOutOfBounds) {
|
||||||
|
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
|
||||||
|
noDrillYet = true;
|
||||||
|
noChainsawYet = true;
|
||||||
pupeteer.sendWorldMessage("%message.level1.outOfBounds");
|
pupeteer.sendWorldMessage("%message.level1.outOfBounds");
|
||||||
pupeteer.setTitleTimed("%message.level1.outOfBounds", 2.5);
|
pupeteer.setTitleTimed("%message.level1.outOfBounds", 2.5);
|
||||||
// world.getDimension("overworld").runCommand("/kill @e[type=agent]");
|
|
||||||
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
|
|
||||||
|
|
||||||
teleportAgent(level1StartPosition);
|
for (let i = 0; i < toolPositions.length; i++) {
|
||||||
|
let blockToReplace = world.getDimension("overworld").getBlock(toolPositions[i]);
|
||||||
|
if (blockToReplace?.type.id === MinecraftBlockTypes.Air) {
|
||||||
|
placeBlock(toolPositions[i], toolBlocks[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
teleportAndFaceAgent(level1StartPosition, vector3(-84, 69, 272));
|
||||||
return false;
|
return false;
|
||||||
} else if (isComplete) {
|
} else if (isComplete) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
isComplete = false;
|
||||||
|
noDrillYet = true;
|
||||||
|
noChainsawYet = true;
|
||||||
|
teleportAndFaceAgent(level1StartPosition, vector3(-84, 69, 272));
|
||||||
|
|
||||||
|
for (let i = 0; i < toolPositions.length; i++) {
|
||||||
|
let blockToReplace = world.getDimension("overworld").getBlock(toolPositions[i]);
|
||||||
|
if (blockToReplace?.type.id === MinecraftBlockTypes.Air) {
|
||||||
|
placeBlock(toolPositions[i], toolBlocks[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -2,23 +2,28 @@ import { Vector3, world } from "@minecraft/server";
|
|||||||
import Level from "../../Commandeer/level/level";
|
import Level from "../../Commandeer/level/level";
|
||||||
import pupeteer from "../../Commandeer/pupeteer";
|
import pupeteer from "../../Commandeer/pupeteer";
|
||||||
import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils";
|
import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils";
|
||||||
import { startLevel } from "../../Commandeer/utils/levelUtils";
|
import { startLevel, teleportAndFaceAgent } from "../../Commandeer/utils/levelUtils";
|
||||||
import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils";
|
import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils";
|
||||||
// import { level2Conditions } from "../../levelConditions/level2";
|
// import { level2Conditions } from "../../levelConditions/level2";
|
||||||
import { mindKeeper, CURRENT_LEVEL } from "../../main";
|
import { mindKeeper, CURRENT_LEVEL } from "../../main";
|
||||||
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
||||||
const level2CommandBlockPos: Vector3 = vector3(-111, 70, 282);
|
import level3 from "./mission2";
|
||||||
|
import { checkBlockCondition } from "../../Commandeer/level/levelTypes";
|
||||||
|
import { level2Conditions } from "../../levelConditions/level2";
|
||||||
|
|
||||||
|
const level2CommandBlockPos: Vector3 = vector3(-111, 70, 282);
|
||||||
const level2StartPosition: Vector3 = vector3(-111, 69, 272);
|
const level2StartPosition: Vector3 = vector3(-111, 69, 272);
|
||||||
const level2EndPosition: Vector3 = vector3(-124, 69, 258);
|
const level2EndPosition: Vector3 = vector3(-124, 69, 258);
|
||||||
|
|
||||||
const level2ResetCommandBlockPos: Vector3 = vector3(56, 68, 211);
|
let isComplete = false;
|
||||||
|
let isOutOfBounds = false;
|
||||||
|
|
||||||
const level2: Level = new Level(
|
const level2: Level = new Level(
|
||||||
() => {
|
() => {
|
||||||
pupeteer.sendWorldMessage("%message.level2.started");
|
pupeteer.sendWorldMessage("%message.level2.started");
|
||||||
pupeteer.setTitleTimed("%message.level2.name", 2.5);
|
pupeteer.setTitleTimed("%message.level2.name", 2.5);
|
||||||
startLevel(level2CommandBlockPos);
|
startLevel(level2CommandBlockPos);
|
||||||
teleportAgent(level2StartPosition);
|
teleportAndFaceAgent(level2StartPosition, vector3(-125, 69, 272));
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
pupeteer.setActionBar("%message.level2.make");
|
pupeteer.setActionBar("%message.level2.make");
|
||||||
@@ -27,15 +32,10 @@ const level2: Level = new Level(
|
|||||||
pupeteer.clearActionBar();
|
pupeteer.clearActionBar();
|
||||||
pupeteer.sendWorldMessage("%message.level2.complete");
|
pupeteer.sendWorldMessage("%message.level2.complete");
|
||||||
pupeteer.setTitleTimed("%message.level2.complete", 2.5);
|
pupeteer.setTitleTimed("%message.level2.complete", 2.5);
|
||||||
|
|
||||||
mindKeeper.increment(CURRENT_LEVEL);
|
mindKeeper.increment(CURRENT_LEVEL);
|
||||||
|
level3.reset();
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
let isComplete = false;
|
|
||||||
let isOutOfBounds = false;
|
|
||||||
|
|
||||||
//6 blocks lower is lava
|
|
||||||
|
|
||||||
let agentPos = getAgentLocation();
|
let agentPos = getAgentLocation();
|
||||||
let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
|
let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
|
||||||
|
|
||||||
@@ -43,25 +43,34 @@ const level2: Level = new Level(
|
|||||||
isOutOfBounds = true;
|
isOutOfBounds = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isAgentAt(level2EndPosition)) {
|
const isCorrect = checkBlockCondition(level2Conditions);
|
||||||
|
if (isAgentAt(level2EndPosition) && isCorrect) {
|
||||||
isComplete = true;
|
isComplete = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// world.sendMessage(`isComplete: ${isComplete}`);
|
if (isOutOfBounds || (isAgentAt(level2EndPosition) && !isCorrect)) {
|
||||||
// world.sendMessage(`isOutOfBounds: ${isOutOfBounds}`);
|
teleportAndFaceAgent(level2StartPosition, vector3(-125, 69, 272));
|
||||||
|
if (!isCorrect) {
|
||||||
if (isOutOfBounds) {
|
pupeteer.sendWorldMessage("%message.level.inCorrect");
|
||||||
|
} else {
|
||||||
pupeteer.sendWorldMessage("%message.level2.outOfBounds");
|
pupeteer.sendWorldMessage("%message.level2.outOfBounds");
|
||||||
pupeteer.setTitleTimed("%message.level2.outOfBounds", 2.5);
|
pupeteer.setTitleTimed("%message.level2.outOfBounds", 2.5);
|
||||||
// world.getDimension("overworld").runCommand("/kill @e[type=agent]");
|
}
|
||||||
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
|
|
||||||
|
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
|
||||||
|
world.getDimension("Overworld").runCommand("/fill -111 69 272 -124 69 258 air replace sweet_berry_bush");
|
||||||
|
world.getDimension("Overworld").runCommand("/fill -111 69 272 -124 69 258 air replace jungle_sapling");
|
||||||
|
|
||||||
teleportAgent(level2StartPosition);
|
|
||||||
return false;
|
return false;
|
||||||
} else if (isComplete) {
|
} else if (isComplete) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
isComplete = false;
|
||||||
|
world.getDimension("Overworld").runCommand("/fill -111 69 272 -124 69 258 air replace sweet_berry_bush");
|
||||||
|
world.getDimension("Overworld").runCommand("/fill -111 69 272 -124 69 258 air replace jungle_sapling");
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,30 @@
|
|||||||
import { Vector3, world } from "@minecraft/server";
|
import { BlockVolume, Vector3, world } from "@minecraft/server";
|
||||||
import Level from "../../Commandeer/level/level";
|
import Level from "../../Commandeer/level/level";
|
||||||
import pupeteer from "../../Commandeer/pupeteer";
|
import pupeteer from "../../Commandeer/pupeteer";
|
||||||
import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils";
|
import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils";
|
||||||
import { startLevel } from "../../Commandeer/utils/levelUtils";
|
import { startLevel, teleportAndFaceAgent } from "../../Commandeer/utils/levelUtils";
|
||||||
import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils";
|
import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils";
|
||||||
import { mindKeeper, CURRENT_LEVEL } from "../../main";
|
import { mindKeeper, CURRENT_LEVEL } from "../../main";
|
||||||
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
||||||
const Level3CommandBlockPos: Vector3 = vector3(-133, 68, 281);
|
import level4 from "./mission3";
|
||||||
|
import { level3Conditions } from "../../levelConditions/level3";
|
||||||
|
import { checkBlockCondition } from "../../Commandeer/level/levelTypes";
|
||||||
|
|
||||||
|
const level3CommandBlockPos: Vector3 = vector3(-133, 68, 281);
|
||||||
const level3StartPosition: Vector3 = vector3(-133, 68, 265);
|
const level3StartPosition: Vector3 = vector3(-133, 68, 265);
|
||||||
const Level3EndPosition: Vector3 = vector3(-148, 68, 265);
|
const level3EndPosition: Vector3 = vector3(-148, 68, 265);
|
||||||
|
|
||||||
|
let volumeResetRedstoneBlock: BlockVolume = new BlockVolume(vector3(-133, 68, 281), vector3(-133, 68, 281));
|
||||||
|
|
||||||
|
let isComplete = false;
|
||||||
|
|
||||||
const level3ResetCommandBlockPos: Vector3 = vector3(56, 68, 211);
|
|
||||||
const level3: Level = new Level(
|
const level3: Level = new Level(
|
||||||
() => {
|
() => {
|
||||||
pupeteer.sendWorldMessage("%message.level3.started");
|
pupeteer.sendWorldMessage("%message.level3.started");
|
||||||
pupeteer.setTitleTimed("%message.level3.name", 2.5);
|
pupeteer.setTitleTimed("%message.level3.name", 2.5);
|
||||||
startLevel(Level3CommandBlockPos);
|
startLevel(level3CommandBlockPos);
|
||||||
teleportAgent(level3StartPosition);
|
teleportAndFaceAgent(level3StartPosition, vector3(-148, 68, 265));
|
||||||
|
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
pupeteer.setActionBar("%message.level3.make");
|
pupeteer.setActionBar("%message.level3.make");
|
||||||
@@ -26,47 +33,38 @@ const level3: Level = new Level(
|
|||||||
pupeteer.clearActionBar();
|
pupeteer.clearActionBar();
|
||||||
pupeteer.sendWorldMessage("%message.level3.complete");
|
pupeteer.sendWorldMessage("%message.level3.complete");
|
||||||
pupeteer.setTitleTimed("%message.level3.complete", 2.5);
|
pupeteer.setTitleTimed("%message.level3.complete", 2.5);
|
||||||
|
|
||||||
mindKeeper.increment(CURRENT_LEVEL);
|
mindKeeper.increment(CURRENT_LEVEL);
|
||||||
|
level4.reset();
|
||||||
|
world.getDimension("Overworld").runCommand("/fill -182 69 255 -182 74 276 barrier replace air");
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
let isComplete = false;
|
const isCorrect = checkBlockCondition(level3Conditions);
|
||||||
let isOutOfBounds = false;
|
|
||||||
|
|
||||||
//6 blocks lower is lava
|
if (isAgentAt(level3EndPosition) && isCorrect) {
|
||||||
|
|
||||||
let agentPos = getAgentLocation();
|
|
||||||
let blockLava = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -7, 0)));
|
|
||||||
let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
|
|
||||||
|
|
||||||
if (
|
|
||||||
blockLava &&
|
|
||||||
blockLava.type.id === MinecraftBlockTypes.Lava &&
|
|
||||||
blockAir &&
|
|
||||||
blockAir.type.id === MinecraftBlockTypes.Air
|
|
||||||
) {
|
|
||||||
isOutOfBounds = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isAgentAt(Level3EndPosition)) {
|
|
||||||
isComplete = true;
|
isComplete = true;
|
||||||
}
|
}
|
||||||
|
if (isAgentAt(level3EndPosition) && !isCorrect) {
|
||||||
|
teleportAndFaceAgent(level3StartPosition, vector3(-148, 68, 265));
|
||||||
|
|
||||||
// world.sendMessage(`isComplete: ${isComplete}`);
|
if (!isCorrect) {
|
||||||
// world.sendMessage(`isOutOfBounds: ${isOutOfBounds}`);
|
pupeteer.sendWorldMessage("%message.level.inCorrect");
|
||||||
|
} else {
|
||||||
if (isOutOfBounds) {
|
|
||||||
pupeteer.sendWorldMessage("%message.level3.outOfBounds");
|
pupeteer.sendWorldMessage("%message.level3.outOfBounds");
|
||||||
pupeteer.setTitleTimed("%message.level3.outOfBounds", 2.5);
|
pupeteer.setTitleTimed("%message.level3.outOfBounds", 2.5);
|
||||||
// world.getDimension("overworld").runCommand("/kill @e[type=agent]");
|
}
|
||||||
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
|
|
||||||
|
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
|
||||||
|
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
|
||||||
|
|
||||||
teleportAgent(level3StartPosition);
|
|
||||||
return false;
|
return false;
|
||||||
} else if (isComplete) {
|
} else if (isComplete) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
isComplete = false;
|
||||||
|
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,29 @@
|
|||||||
import { Vector3, world } from "@minecraft/server";
|
import { BlockVolume, Vector3, world } from "@minecraft/server";
|
||||||
import Level from "../../Commandeer/level/level";
|
import Level from "../../Commandeer/level/level";
|
||||||
import pupeteer from "../../Commandeer/pupeteer";
|
import pupeteer from "../../Commandeer/pupeteer";
|
||||||
import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils";
|
import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils";
|
||||||
import { startLevel } from "../../Commandeer/utils/levelUtils";
|
import { startLevel, teleportAndFaceAgent } from "../../Commandeer/utils/levelUtils";
|
||||||
import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils";
|
import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils";
|
||||||
import { mindKeeper, CURRENT_LEVEL } from "../../main";
|
import { mindKeeper, CURRENT_LEVEL } from "../../main";
|
||||||
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
||||||
|
import level5 from "../level3/mission1";
|
||||||
|
|
||||||
const Level4CommandBlockPos: Vector3 = vector3(-161, 68, 291);
|
const Level4CommandBlockPos: Vector3 = vector3(-161, 68, 291);
|
||||||
const level4StartPosition: Vector3 = vector3(-161, 62, 261);
|
const level4StartPosition: Vector3 = vector3(-161, 62, 261);
|
||||||
const level4EndPosition: Vector3 = vector3(-174, 62, 268);
|
const level4EndPosition: Vector3 = vector3(-174, 62, 268);
|
||||||
|
|
||||||
const level4ResetCommandBlockPos: Vector3 = vector3(56, 68, 211);
|
let volumeResetRedstoneBlock: BlockVolume = new BlockVolume(vector3(-163, 67, 291), vector3(-163, 67, 291));
|
||||||
|
|
||||||
|
let isComplete = false;
|
||||||
|
let isOutOfBounds = false;
|
||||||
|
|
||||||
const level4: Level = new Level(
|
const level4: Level = new Level(
|
||||||
() => {
|
() => {
|
||||||
pupeteer.sendWorldMessage("%message.level4.started");
|
pupeteer.sendWorldMessage("%message.level4.started");
|
||||||
pupeteer.setTitleTimed("%message.level4.name", 2.5);
|
pupeteer.setTitleTimed("%message.level4.name", 2.5);
|
||||||
startLevel(Level4CommandBlockPos);
|
startLevel(Level4CommandBlockPos);
|
||||||
teleportAgent(level4StartPosition);
|
teleportAndFaceAgent(level4StartPosition, vector3(-175, 62, 261));
|
||||||
|
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
pupeteer.setActionBar("%message.level4.make");
|
pupeteer.setActionBar("%message.level4.make");
|
||||||
@@ -25,25 +32,15 @@ const level4: Level = new Level(
|
|||||||
pupeteer.clearActionBar();
|
pupeteer.clearActionBar();
|
||||||
pupeteer.sendWorldMessage("%message.level4.complete");
|
pupeteer.sendWorldMessage("%message.level4.complete");
|
||||||
pupeteer.setTitleTimed("%message.level4.complete", 2.5);
|
pupeteer.setTitleTimed("%message.level4.complete", 2.5);
|
||||||
|
world.getDimension("Overworld").runCommand("/fill -182 69 255 -182 74 276 air replace barrier");
|
||||||
mindKeeper.increment(CURRENT_LEVEL);
|
mindKeeper.increment(CURRENT_LEVEL);
|
||||||
|
level5.reset();
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
let isComplete = false;
|
|
||||||
let isOutOfBounds = false;
|
|
||||||
|
|
||||||
//6 blocks lower is lava
|
|
||||||
|
|
||||||
let agentPos = getAgentLocation();
|
let agentPos = getAgentLocation();
|
||||||
let blockLava = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -7, 0)));
|
|
||||||
let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
|
let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
|
||||||
|
|
||||||
if (
|
if (blockAir && blockAir.type.id === MinecraftBlockTypes.Air) {
|
||||||
blockLava &&
|
|
||||||
blockLava.type.id === MinecraftBlockTypes.Lava &&
|
|
||||||
blockAir &&
|
|
||||||
blockAir.type.id === MinecraftBlockTypes.Air
|
|
||||||
) {
|
|
||||||
isOutOfBounds = true;
|
isOutOfBounds = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,21 +48,23 @@ const level4: Level = new Level(
|
|||||||
isComplete = true;
|
isComplete = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// world.sendMessage(`isComplete: ${isComplete}`);
|
|
||||||
// world.sendMessage(`isOutOfBounds: ${isOutOfBounds}`);
|
|
||||||
|
|
||||||
if (isOutOfBounds) {
|
if (isOutOfBounds) {
|
||||||
|
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
|
||||||
|
teleportAndFaceAgent(level4StartPosition, vector3(-175, 62, 261));
|
||||||
|
|
||||||
pupeteer.sendWorldMessage("%message.level4.outOfBounds");
|
pupeteer.sendWorldMessage("%message.level4.outOfBounds");
|
||||||
pupeteer.setTitleTimed("%message.level4.outOfBounds", 2.5);
|
pupeteer.setTitleTimed("%message.level4.outOfBounds", 2.5);
|
||||||
// world.getDimension("overworld").runCommand("/kill @e[type=agent]");
|
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
|
||||||
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
|
|
||||||
|
|
||||||
teleportAgent(level4StartPosition);
|
|
||||||
return false;
|
return false;
|
||||||
} else if (isComplete) {
|
} else if (isComplete) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
isComplete = false;
|
||||||
|
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
116
scripts/levels/level3/mission1.ts
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
import { BlockVolume, Vector3, world } from "@minecraft/server";
|
||||||
|
import Level from "../../Commandeer/level/level";
|
||||||
|
import pupeteer from "../../Commandeer/pupeteer";
|
||||||
|
import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils";
|
||||||
|
import { placeBlock, startLevel, teleportAndFaceAgent } from "../../Commandeer/utils/levelUtils";
|
||||||
|
import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils";
|
||||||
|
// import { level2Conditions } from "../../levelConditions/level2";
|
||||||
|
import { mindKeeper, CURRENT_LEVEL } from "../../main";
|
||||||
|
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
|
||||||
|
|
||||||
|
const level5CommandBlockPos: Vector3 = vector3(-255, 67, 244);
|
||||||
|
const level5StartPosition: Vector3 = vector3(-226, 65, 244);
|
||||||
|
const level5EndPosition: Vector3 = vector3(-226, 65, 229);
|
||||||
|
|
||||||
|
let volumeResetRedstoneBlock: BlockVolume = new BlockVolume(vector3(-255, 67, 246), vector3(-255, 67, 246));
|
||||||
|
|
||||||
|
let isOutOfBounds = false;
|
||||||
|
let isComplete = false;
|
||||||
|
let diamondAndPickaxePositions = [
|
||||||
|
vector3(-220, 64, 243),
|
||||||
|
vector3(-224, 64, 242),
|
||||||
|
vector3(-216, 64, 242),
|
||||||
|
vector3(-218, 64, 241),
|
||||||
|
vector3(-226, 64, 239),
|
||||||
|
vector3(-214, 64, 238),
|
||||||
|
vector3(-217, 64, 238),
|
||||||
|
vector3(-220, 64, 238),
|
||||||
|
vector3(-219, 64, 236),
|
||||||
|
vector3(-221, 64, 235),
|
||||||
|
vector3(-225, 64, 235),
|
||||||
|
vector3(-217, 64, 235),
|
||||||
|
vector3(-215, 64, 233),
|
||||||
|
vector3(-227, 64, 232),
|
||||||
|
vector3(-225, 64, 231),
|
||||||
|
vector3(-218, 64, 231),
|
||||||
|
vector3(-223, 64, 230),
|
||||||
|
vector3(-214, 64, 230),
|
||||||
|
vector3(-219, 64, 229),
|
||||||
|
vector3(-225, 64, 229),
|
||||||
|
];
|
||||||
|
|
||||||
|
const level5: Level = new Level(
|
||||||
|
() => {
|
||||||
|
pupeteer.sendWorldMessage("%message.level5.started");
|
||||||
|
pupeteer.setTitleTimed("%message.level5.name", 2.5);
|
||||||
|
startLevel(level5CommandBlockPos);
|
||||||
|
teleportAndFaceAgent(level5StartPosition, vector3(-226, 65, 229));
|
||||||
|
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
pupeteer.setActionBar("%message.level5.make");
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
pupeteer.clearActionBar();
|
||||||
|
pupeteer.sendWorldMessage("%message.level5.complete");
|
||||||
|
pupeteer.setTitleTimed("%message.level5.complete", 2.5);
|
||||||
|
|
||||||
|
mindKeeper.increment(CURRENT_LEVEL);
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
let agentPos = getAgentLocation();
|
||||||
|
let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
|
||||||
|
let blockMagma = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
|
||||||
|
let blockTNT = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
|
||||||
|
|
||||||
|
if (
|
||||||
|
blockAir &&
|
||||||
|
blockAir.type.id === MinecraftBlockTypes.Air &&
|
||||||
|
blockMagma &&
|
||||||
|
blockMagma.type.id === MinecraftBlockTypes.Magma &&
|
||||||
|
blockTNT &&
|
||||||
|
blockTNT.type.id === MinecraftBlockTypes.Tnt
|
||||||
|
) {
|
||||||
|
isOutOfBounds = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isAgentAt(level5EndPosition)) {
|
||||||
|
isComplete = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isOutOfBounds) {
|
||||||
|
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
|
||||||
|
teleportAndFaceAgent(level5StartPosition, vector3(-226, 65, 229));
|
||||||
|
|
||||||
|
pupeteer.sendWorldMessage("%message.level5.outOfBounds");
|
||||||
|
pupeteer.setTitleTimed("%message.level5.outOfBounds", 2.5);
|
||||||
|
|
||||||
|
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
|
||||||
|
|
||||||
|
for (let i = 0; i < diamondAndPickaxePositions.length; i++) {
|
||||||
|
let blockToReplace = world.getDimension("overworld").getBlock(diamondAndPickaxePositions[i]);
|
||||||
|
if (blockToReplace?.type.id === MinecraftBlockTypes.Stone) {
|
||||||
|
placeBlock(diamondAndPickaxePositions[i], MinecraftBlockTypes.PurpleWool);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
} else if (isComplete) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
isComplete = false;
|
||||||
|
world.getDimension("Overworld").runCommand("/fill -213 64 244 -227 64 229 stone replace podzol");
|
||||||
|
for (let i = 0; i < diamondAndPickaxePositions.length; i++) {
|
||||||
|
let blockToReplace = world.getDimension("overworld").getBlock(diamondAndPickaxePositions[i]);
|
||||||
|
if (blockToReplace?.type.id === MinecraftBlockTypes.Stone) {
|
||||||
|
placeBlock(diamondAndPickaxePositions[i], MinecraftBlockTypes.PurpleWool);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
export default level5;
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
import { BlockType, Vector3, world } from "@minecraft/server";
|
|
||||||
import Level from "../Commandeer/level/level";
|
|
||||||
import { leverOn } from "../Commandeer/level/levelTypes";
|
|
||||||
import { teleportAgent, isAgentAt } from "../Commandeer/utils/agentUtils";
|
|
||||||
import { startLevel } from "../Commandeer/utils/levelUtils";
|
|
||||||
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
|
||||||
import { levelIntroConditions } from "../levelConditions/levelIntro";
|
|
||||||
import { CURRENT_LEVEL, mindKeeper } from "../main";
|
|
||||||
import Pupeteer from "../Commandeer/pupeteer";
|
|
||||||
import { MinecraftBlockTypes } from "../vanilla-data/mojang-block";
|
|
||||||
|
|
||||||
// const levelIntroCommandBlockPos: Vector3 = vector3(58, 66, 276);
|
|
||||||
// const levelIntroStartPosition: Vector3 = vector3(28, 70, 269);
|
|
||||||
// const levelIntroEndPosition: Vector3 = vector3(39, 70, 269);
|
|
||||||
const buttonPositions: Vector3[] = [
|
|
||||||
vector3(2471, 11, 106),
|
|
||||||
vector3(2469, 11, 106),
|
|
||||||
vector3(2468, 11, 106),
|
|
||||||
vector3(2464, 11, 106),
|
|
||||||
];
|
|
||||||
|
|
||||||
const blockPositions: Vector3[] = [
|
|
||||||
vector3(2471, 12, 108),
|
|
||||||
vector3(2469, 12, 108),
|
|
||||||
vector3(2468, 12, 108),
|
|
||||||
vector3(2464, 12, 108),
|
|
||||||
];
|
|
||||||
|
|
||||||
let currentBlockSequence: string[] = [];
|
|
||||||
let currentBlockSeuqenceIndex: number[] = [];
|
|
||||||
|
|
||||||
const blockCycle: string[] = [
|
|
||||||
MinecraftBlockTypes.RedstoneBlock,
|
|
||||||
MinecraftBlockTypes.GoldBlock,
|
|
||||||
MinecraftBlockTypes.DiamondBlock,
|
|
||||||
MinecraftBlockTypes.EmeraldBlock,
|
|
||||||
MinecraftBlockTypes.LapisBlock,
|
|
||||||
];
|
|
||||||
|
|
||||||
let buttonPressed: boolean[] = buttonPositions.map(() => false);
|
|
||||||
|
|
||||||
const levelIntro: Level = new Level(
|
|
||||||
() => {
|
|
||||||
Pupeteer.sendWorldMessage("%message.intro.started");
|
|
||||||
Pupeteer.setTitleTimed("%message.intro.started", 2.5);
|
|
||||||
// startLevel(levelIntroCommandBlockPos);
|
|
||||||
// teleportAgent(levelIntroStartPosition);
|
|
||||||
blockPositions.forEach((pos) => {
|
|
||||||
let block = world.getDimension("overworld").getBlock(pos);
|
|
||||||
let index = blockPositions.indexOf(pos);
|
|
||||||
let blockType = block!.type;
|
|
||||||
currentBlockSequence[index] = blockType.id;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
() => {
|
|
||||||
Pupeteer.setActionBar("%message.intro.make");
|
|
||||||
|
|
||||||
buttonPositions.forEach((pos) => {
|
|
||||||
let block = world.getDimension("overworld").getBlock(pos);
|
|
||||||
if (!block) return;
|
|
||||||
let index = buttonPositions.indexOf(pos);
|
|
||||||
let prevState = buttonPressed[index];
|
|
||||||
let currentState = block!.getRedstonePower()! > 0;
|
|
||||||
|
|
||||||
if (currentState && !prevState) {
|
|
||||||
buttonPressed[index] = true;
|
|
||||||
//NextBlock
|
|
||||||
let nextBlock = currentBlockSequence[index];
|
|
||||||
let nextIndex = blockCycle.indexOf(nextBlock);
|
|
||||||
nextIndex = (nextIndex + 1) % blockCycle.length;
|
|
||||||
currentBlockSequence[index] = blockCycle[nextIndex];
|
|
||||||
//Update the block
|
|
||||||
let blockPos = blockPositions[index];
|
|
||||||
world.getDimension("overworld").getBlock(blockPos)!.setType(blockCycle[nextIndex]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!currentState && prevState) {
|
|
||||||
buttonPressed[index] = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
() => {
|
|
||||||
Pupeteer.clearActionBar();
|
|
||||||
world.sendMessage("%message.intro.done");
|
|
||||||
Pupeteer.setTitleTimed("%message.intro.done", 2.5);
|
|
||||||
|
|
||||||
mindKeeper.increment(CURRENT_LEVEL);
|
|
||||||
},
|
|
||||||
() => {
|
|
||||||
let counter = 0;
|
|
||||||
let isComplete = true;
|
|
||||||
levelIntroConditions.conditions.forEach((condition) => {
|
|
||||||
let blockInworld = world.getDimension("overworld").getBlock(condition.position);
|
|
||||||
if (blockInworld?.type.id !== condition.block) {
|
|
||||||
isComplete = false;
|
|
||||||
counter++;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
world.sendMessage(`%message.intro.progress ${counter}/${levelIntroConditions.conditions.length}`);
|
|
||||||
world.sendMessage(`isComplete: ${isComplete}`);
|
|
||||||
if (isComplete) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
() => {
|
|
||||||
blockPositions.forEach((pos) => {
|
|
||||||
let block = world.getDimension("overworld").getBlock(pos);
|
|
||||||
let randomBlock = blockCycle[Math.floor(Math.random() * blockCycle.length)];
|
|
||||||
block!.setType(randomBlock);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
export default levelIntro;
|
|
||||||
399
scripts/main.ts
@@ -7,6 +7,7 @@ import {
|
|||||||
Dimension,
|
Dimension,
|
||||||
TicksPerSecond,
|
TicksPerSecond,
|
||||||
BlockVolume,
|
BlockVolume,
|
||||||
|
ScriptEventCommandMessageAfterEvent,
|
||||||
} from "@minecraft/server";
|
} from "@minecraft/server";
|
||||||
import { Mindkeeper, StoreType } from "./Commandeer/mindKeeper";
|
import { Mindkeeper, StoreType } from "./Commandeer/mindKeeper";
|
||||||
import Pupeteer from "./Commandeer/pupeteer";
|
import Pupeteer from "./Commandeer/pupeteer";
|
||||||
@@ -17,15 +18,22 @@ import { TrailMaker } from "./Commandeer/trail/trailMaker";
|
|||||||
import * as CCTrigger from "./Commandeer/Trigger/CCTrigger";
|
import * as CCTrigger from "./Commandeer/Trigger/CCTrigger";
|
||||||
import { Commands } from "./Commandeer/command/command";
|
import { Commands } from "./Commandeer/command/command";
|
||||||
import { Trail } from "./Commandeer/trail/trailEngine";
|
import { Trail } from "./Commandeer/trail/trailEngine";
|
||||||
import { startTrail } from "./trails/startTrail";
|
import { levelStartTrail } from "./trails/startTrail";
|
||||||
import level1 from "./levels/level1/mission1";
|
import level1 from "./levels/level1/mission1";
|
||||||
import level2 from "./levels/level2/mission1";
|
import level2 from "./levels/level2/mission1";
|
||||||
import level3 from "./levels/level2/mission2";
|
import level3 from "./levels/level2/mission2";
|
||||||
import level4 from "./levels/level2/mission3";
|
import level4 from "./levels/level2/mission3";
|
||||||
|
import level5 from "./levels/level3/mission1";
|
||||||
import { MinecraftBlockTypes } from "./vanilla-data/mojang-block";
|
import { MinecraftBlockTypes } from "./vanilla-data/mojang-block";
|
||||||
import { TransitionTrailToLevel1 } from "./trails/TransitionTrailToLevel1";
|
|
||||||
import { TransitionTrailToLevel2 } from "./trails/TransitionTrailToLevel2";
|
import { TransitionTrailToLevel2 } from "./trails/TransitionTrailToLevel2";
|
||||||
import { TransitionTrailToLevel3 } from "./trails/TransitionTrailToLevel3";
|
import { TransitionTrailBeforeLevel3 } from "./trails/TransitionTrailBeforeLevel3";
|
||||||
|
import { TransitionTrailToLevel5 } from "./trails/TransitionTrailToLevel5";
|
||||||
|
import { TransitionTrailToTheEnd } from "./trails/TransitionTrailToTheEnd";
|
||||||
|
import { setNPCDialog } from "./Commandeer/utils/entityUtils";
|
||||||
|
import { drawArrow } from "./Commandeer/utils/arrow";
|
||||||
|
import { TransitionTrailBeforeLevel5 } from "./trails/TransitionTrailBeforeLevel5";
|
||||||
|
import { TransitionTrailBeforeLevel4 } from "./trails/TransitionTrailBeforeLevel4";
|
||||||
|
import { drawSmallArrow } from "./Commandeer/utils/smallArrow";
|
||||||
|
|
||||||
const mindKeeper = new Mindkeeper(world);
|
const mindKeeper = new Mindkeeper(world);
|
||||||
const trailMaker: TrailMaker.Maker = new TrailMaker.Maker();
|
const trailMaker: TrailMaker.Maker = new TrailMaker.Maker();
|
||||||
@@ -33,36 +41,34 @@ const triggerManager = new CCTrigger.Manager(mindKeeper);
|
|||||||
const CURRENT_LEVEL = "currentLevel";
|
const CURRENT_LEVEL = "currentLevel";
|
||||||
const AGENT_ID = "agentid";
|
const AGENT_ID = "agentid";
|
||||||
const PREFIX = "!";
|
const PREFIX = "!";
|
||||||
|
const frameDuration = 7;
|
||||||
|
const DEVELOPER_MODE = true;
|
||||||
export { mindKeeper, CURRENT_LEVEL, triggerManager };
|
export { mindKeeper, CURRENT_LEVEL, triggerManager };
|
||||||
|
|
||||||
triggerManager.RegisterFunctionTrigger("resetPath", (event) => {
|
let startTrail: Trail = new Trail("startTrail", 4, 4);
|
||||||
resetLightPath();
|
startTrail.fromTrail(levelStartTrail);
|
||||||
});
|
|
||||||
|
|
||||||
async function resetLightPath() {
|
|
||||||
world.getDimension("overworld").runCommand("/fill 2467 9 87 2468 9 105 air");
|
|
||||||
}
|
|
||||||
|
|
||||||
let isIntroToLevel1Sqeuence = false;
|
|
||||||
let isMakingLevel1 = false;
|
|
||||||
let isMakingLevel2 = false;
|
|
||||||
let isMakingLevel3 = false;
|
|
||||||
let isMakingLevel4 = false;
|
|
||||||
|
|
||||||
let introTrail: Trail = new Trail("introTrail", 4, 4);
|
|
||||||
introTrail.fromTrail(startTrail);
|
|
||||||
|
|
||||||
let transitionTrail1 = new Trail("transitionTrail1", 2, 2);
|
let transitionTrail1 = new Trail("transitionTrail1", 2, 2);
|
||||||
transitionTrail1.fromTrail(TransitionTrailToLevel1);
|
transitionTrail1.fromTrail(TransitionTrailToLevel2);
|
||||||
|
|
||||||
let transitionTrail2 = new Trail("transitionTrail2", 2, 2);
|
let transitionTrail2 = new Trail("transitionTrail2", 2, 2);
|
||||||
transitionTrail2.fromTrail(TransitionTrailToLevel2);
|
transitionTrail2.fromTrail(TransitionTrailBeforeLevel3);
|
||||||
|
|
||||||
let transitionTrail3 = new Trail("transitionTrail3", 2, 2);
|
let transitionTrail3 = new Trail("transitionTrail3", 2, 2);
|
||||||
transitionTrail3.fromTrail(TransitionTrailToLevel3);
|
transitionTrail3.fromTrail(TransitionTrailBeforeLevel4);
|
||||||
|
let transitionTrail4 = new Trail("transitionTrail4", 2, 2);
|
||||||
|
transitionTrail4.fromTrail(TransitionTrailBeforeLevel5);
|
||||||
|
let transitionTrail5 = new Trail("transitionTrail5", 2, 2);
|
||||||
|
transitionTrail5.fromTrail(TransitionTrailToLevel5);
|
||||||
|
let transitionTrail6 = new Trail("transitionTrail6", 2, 2);
|
||||||
|
transitionTrail6.fromTrail(TransitionTrailToTheEnd);
|
||||||
|
|
||||||
const DEVELOPER_MODE = true;
|
let animationPlaying = false;
|
||||||
let tickCounter = 0;
|
let tickCounter = 0;
|
||||||
|
let gateRoot = vector3(-226, 68, 223);
|
||||||
|
enum GateState {
|
||||||
|
open,
|
||||||
|
closed,
|
||||||
|
}
|
||||||
|
let gateState = GateState.closed;
|
||||||
|
|
||||||
system.runInterval(async () => {
|
system.runInterval(async () => {
|
||||||
tickCounter++;
|
tickCounter++;
|
||||||
if (mindKeeper.initialised) {
|
if (mindKeeper.initialised) {
|
||||||
@@ -74,129 +80,97 @@ system.runInterval(async () => {
|
|||||||
const currentLevel = mindKeeper.get(CURRENT_LEVEL);
|
const currentLevel = mindKeeper.get(CURRENT_LEVEL);
|
||||||
switch (currentLevel) {
|
switch (currentLevel) {
|
||||||
case 0:
|
case 0:
|
||||||
Pupeteer.setActionBar("Leave the treehouse and go down the ladder.");
|
Pupeteer.setActionBar("%message.intro");
|
||||||
introTrail.spawnNext();
|
setNPCDialog("bilal1", "bilal_beforelevel_1_1");
|
||||||
|
startTrail.spawnNext();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
Pupeteer.setActionBar("Trigger1 works");
|
Pupeteer.setActionBar("%message.talkto.bilal");
|
||||||
if (!isMakingLevel1) {
|
|
||||||
isMakingLevel1 = true;
|
|
||||||
world.sendMessage("Starting level1");
|
|
||||||
level1.update();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
Pupeteer.setActionBar("Go to the next level.");
|
|
||||||
transitionTrail1.spawnNext();
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
Pupeteer.setActionBar("Trigger2 works");
|
level1.update();
|
||||||
if (!isMakingLevel2) {
|
|
||||||
isMakingLevel2 = true;
|
|
||||||
world.sendMessage("Starting level2");
|
|
||||||
level2.update();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
Pupeteer.setActionBar("Trigger3 works");
|
setNPCDialog("bilal1", "bilal_afterlevel_1_1");
|
||||||
if (!isMakingLevel3) {
|
Pupeteer.setActionBar("%message.talkto.bilal");
|
||||||
isMakingLevel3 = true;
|
|
||||||
world.sendMessage("Starting level3");
|
|
||||||
level3.update();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
Pupeteer.setActionBar("Trigger4 works");
|
transitionTrail1.spawnNext();
|
||||||
if (!isMakingLevel4) {
|
Pupeteer.setActionBarTimed("%message.trail.follow", 2.5);
|
||||||
isMakingLevel4 = true;
|
setNPCDialog("chanel1", "chanel_beforelevel_2_1");
|
||||||
world.sendMessage("Starting level4");
|
Pupeteer.setActionBar("%message.talkto.chanel");
|
||||||
level4.update();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
|
drawArrow(vector3(-118.5, 78, 265.5));
|
||||||
|
level2.update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 7:
|
||||||
|
setNPCDialog("chanel1", "chanel_afterlevel_2_1");
|
||||||
|
transitionTrail2.spawnNext();
|
||||||
|
Pupeteer.setActionBar("%message.talkto.chanel");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 8:
|
||||||
|
drawArrow(vector3(-141.5, 78, 265.5));
|
||||||
|
level3.update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 9:
|
||||||
|
setNPCDialog("chanel1", "chanel_afterlevel_3_1");
|
||||||
|
transitionTrail3.spawnNext();
|
||||||
|
Pupeteer.setActionBar("%message.talkto.chanel");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 10:
|
||||||
|
drawArrow(vector3(-167.5, 78, 265.5));
|
||||||
|
drawSmallArrow(vector3(-161.5, 76, 276.5));
|
||||||
|
level4.update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 11:
|
||||||
|
setNPCDialog("chanel1", "chanel_afterlevel_4_1");
|
||||||
|
transitionTrail4.spawnNext();
|
||||||
|
Pupeteer.setActionBar("%message.talkto.chanel");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 12:
|
||||||
|
Pupeteer.setActionBar("%message.trail.follow");
|
||||||
|
transitionTrail5.spawnNext();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 13:
|
||||||
|
setNPCDialog("farah1", "farah_beforelevel_5_1");
|
||||||
|
Pupeteer.setActionBar("%message.talkto.farah");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 14:
|
||||||
|
level5.update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 15:
|
||||||
|
transitionTrail6.spawnNext();
|
||||||
|
if (gateState == GateState.closed) {
|
||||||
|
gateState = GateState.open;
|
||||||
|
PlayGateOpenAnimation();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 16:
|
||||||
|
Pupeteer.setActionBar("%message.end");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
triggerManager.RegisterFunctionTrigger("lightPath", (event) => {
|
|
||||||
lightUpPath();
|
|
||||||
});
|
|
||||||
|
|
||||||
async function lightUpPath() {
|
|
||||||
let overworld: Dimension = world.getDimension("overworld");
|
|
||||||
let pos1 = vector3(2467, 9, 87);
|
|
||||||
let pos2 = vector3(2468, 9, 105);
|
|
||||||
|
|
||||||
for (let z = pos2.z; z >= pos1.z; z--) {
|
|
||||||
let volume: BlockVolume = new BlockVolume(vector3(pos1.x, pos1.y, z), vector3(pos1.x + 1, pos1.y, z));
|
|
||||||
overworld.fillBlocks(volume, MinecraftBlockTypes.RedstoneBlock);
|
|
||||||
await delay(4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
world.afterEvents.worldInitialize.subscribe(() => {
|
|
||||||
mindKeeper.registerStore(CURRENT_LEVEL, StoreType.number);
|
|
||||||
mindKeeper.registerStore(AGENT_ID, StoreType.string);
|
|
||||||
triggerManager.RegisterStores();
|
|
||||||
mindKeeper.registerToWorld();
|
|
||||||
|
|
||||||
triggerManager.Load();
|
|
||||||
});
|
|
||||||
|
|
||||||
world.beforeEvents.itemUseOn.subscribe((event) => {
|
|
||||||
trailMaker.OnItemUse(event);
|
|
||||||
triggerManager.OnItemUse(event);
|
|
||||||
});
|
|
||||||
|
|
||||||
async function randomExplosions() {
|
|
||||||
let pos1 = vector3(2465, 10, 82);
|
|
||||||
let pos2 = vector3(2471, 18, 90);
|
|
||||||
|
|
||||||
for (let i = 0; i < 5; i++) {
|
|
||||||
let pos = vector3(
|
|
||||||
pos1.x + Math.random() * (pos2.x - pos1.x),
|
|
||||||
pos1.y + Math.random() * (pos2.y - pos1.y),
|
|
||||||
pos1.z + Math.random() * (pos2.z - pos1.z)
|
|
||||||
);
|
|
||||||
|
|
||||||
system.run(() => {
|
|
||||||
spawnParticle(pos, "minecraft:huge_explosion_emitter", new MolangVariableMap());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
world.afterEvents.chatSend.subscribe(async (event: ChatSendAfterEvent) => {
|
|
||||||
const command = event.message.split(" ")[0];
|
|
||||||
|
|
||||||
trailMaker.OnChat(event);
|
|
||||||
mindKeeper.chatCommands(event);
|
|
||||||
triggerManager.OnChat(event);
|
|
||||||
|
|
||||||
if (command === "!reset") {
|
|
||||||
world.sendMessage("Resetting");
|
|
||||||
|
|
||||||
mindKeeper.set(CURRENT_LEVEL, 0);
|
|
||||||
|
|
||||||
resetLightPath();
|
|
||||||
|
|
||||||
level1.reset();
|
|
||||||
level2.reset();
|
|
||||||
level3.reset();
|
|
||||||
level4.reset();
|
|
||||||
|
|
||||||
isIntroToLevel1Sqeuence = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
system.afterEvents.scriptEventReceive.subscribe((event) => {
|
|
||||||
if (event.id == "cc:getId") {
|
|
||||||
let id = event.message;
|
|
||||||
world.sendMessage("Script got the id " + id);
|
|
||||||
mindKeeper.set(AGENT_ID, id);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
class ClonePos {
|
class ClonePos {
|
||||||
point1: Vector3;
|
point1: Vector3;
|
||||||
point2: Vector3;
|
point2: Vector3;
|
||||||
@@ -207,45 +181,36 @@ class ClonePos {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
triggerManager.RegisterFunctionTrigger("BottomTreeHouse", async (event) => {
|
const gateFrames: ClonePos[] = [
|
||||||
if (mindKeeper.get(CURRENT_LEVEL) == 0) {
|
{
|
||||||
// mindKeeper.increment(CURRENT_LEVEL);
|
point1: vector3(-226, 66, 223),
|
||||||
mindKeeper.set(CURRENT_LEVEL, 1);
|
point2: vector3(-219, 62, 223),
|
||||||
}
|
},
|
||||||
});
|
{
|
||||||
|
point1: vector3(-226, 61, 223),
|
||||||
|
point2: vector3(-219, 57, 223),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
point1: vector3(-226, 56, 223),
|
||||||
|
point2: vector3(-219, 52, 223),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
point1: vector3(-226, 51, 223),
|
||||||
|
point2: vector3(-219, 47, 223),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
point1: vector3(-226, 46, 223),
|
||||||
|
point2: vector3(-219, 42, 223),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
triggerManager.RegisterFunctionTrigger("PastLevel1", async (event) => {
|
let PlayGateOpenAnimation = async () => {
|
||||||
if (mindKeeper.get(CURRENT_LEVEL) == 0) {
|
playAnimation(gateFrames, frameDuration, false, gateRoot);
|
||||||
// mindKeeper.increment(CURRENT_LEVEL);
|
};
|
||||||
mindKeeper.set(CURRENT_LEVEL, 2);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
triggerManager.RegisterFunctionTrigger("PastLevel2", async (event) => {
|
let ResetGate = () => {
|
||||||
if (mindKeeper.get(CURRENT_LEVEL) == 0) {
|
SetFrame(gateFrames[0], gateRoot);
|
||||||
// mindKeeper.increment(CURRENT_LEVEL);
|
};
|
||||||
mindKeeper.set(CURRENT_LEVEL, 3);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
triggerManager.RegisterFunctionTrigger("PastLevel3", async (event) => {
|
|
||||||
if (mindKeeper.get(CURRENT_LEVEL) == 0) {
|
|
||||||
// mindKeeper.increment(CURRENT_LEVEL);
|
|
||||||
mindKeeper.set(CURRENT_LEVEL, 4);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Commands.register(PREFIX, "info", (arg) => {
|
|
||||||
world.sendMessage("-----------------");
|
|
||||||
world.sendMessage("Current level: " + mindKeeper.get(CURRENT_LEVEL));
|
|
||||||
world.sendMessage("Agent ID: " + mindKeeper.get(AGENT_ID));
|
|
||||||
world.sendMessage("Engine Version: 1.0.2");
|
|
||||||
world.sendMessage("Engine is running");
|
|
||||||
world.sendMessage("Active players: " + world.getPlayers().length);
|
|
||||||
world.sendMessage("Current dimension: " + arg.player.dimension.id);
|
|
||||||
world.sendMessage("Current position: " + Vector3ToFancyString(arg.player.location));
|
|
||||||
world.sendMessage("-----------------");
|
|
||||||
});
|
|
||||||
|
|
||||||
async function SetFrame(frame: ClonePos, destination: Vector3) {
|
async function SetFrame(frame: ClonePos, destination: Vector3) {
|
||||||
await world
|
await world
|
||||||
@@ -257,7 +222,6 @@ async function SetFrame(frame: ClonePos, destination: Vector3) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let animationPlaying = false;
|
|
||||||
async function playAnimation(
|
async function playAnimation(
|
||||||
frames: ClonePos[],
|
frames: ClonePos[],
|
||||||
delayTime: number,
|
delayTime: number,
|
||||||
@@ -266,7 +230,7 @@ async function playAnimation(
|
|||||||
force: boolean = false
|
force: boolean = false
|
||||||
) {
|
) {
|
||||||
if (animationPlaying && !force) {
|
if (animationPlaying && !force) {
|
||||||
world.sendMessage("Animation already playing");
|
// world.sendMessage("Animation already playing");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let frameCount = frames.length;
|
let frameCount = frames.length;
|
||||||
@@ -290,10 +254,101 @@ async function playAnimation(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
triggerManager.RegisterFunctionTrigger("BottomTreehouse", async (event) => {
|
||||||
|
if (mindKeeper.get(CURRENT_LEVEL) == 0) {
|
||||||
|
mindKeeper.increment(CURRENT_LEVEL);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
triggerManager.RegisterFunctionTrigger("level1", async (event) => {
|
||||||
|
if (mindKeeper.get(CURRENT_LEVEL) == 2) {
|
||||||
|
mindKeeper.increment(CURRENT_LEVEL);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
triggerManager.RegisterFunctionTrigger("level5", async (event) => {
|
||||||
|
if (mindKeeper.get(CURRENT_LEVEL) == 12) {
|
||||||
|
mindKeeper.increment(CURRENT_LEVEL);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
triggerManager.RegisterFunctionTrigger("CompletedTheMission", async (event) => {
|
||||||
|
if (mindKeeper.get(CURRENT_LEVEL) == 15) {
|
||||||
|
mindKeeper.increment(CURRENT_LEVEL);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Commands.register(PREFIX, "info", (arg) => {
|
||||||
|
world.sendMessage("-----------------");
|
||||||
|
world.sendMessage("Current level: " + mindKeeper.get(CURRENT_LEVEL));
|
||||||
|
world.sendMessage("Agent ID: " + mindKeeper.get(AGENT_ID));
|
||||||
|
world.sendMessage("Engine Version: 1.0.2");
|
||||||
|
world.sendMessage("Engine is running");
|
||||||
|
world.sendMessage("Active players: " + world.getPlayers().length);
|
||||||
|
world.sendMessage("Current dimension: " + arg.player.dimension.id);
|
||||||
|
world.sendMessage("Current position: " + Vector3ToFancyString(arg.player.location));
|
||||||
|
world.sendMessage("-----------------");
|
||||||
|
});
|
||||||
|
|
||||||
system.afterEvents.scriptEventReceive.subscribe((event) => {
|
system.afterEvents.scriptEventReceive.subscribe((event) => {
|
||||||
if (event.id == "cc:getId") {
|
if (event.id == "cc:getId") {
|
||||||
let id = event.message;
|
let id = event.message;
|
||||||
world.sendMessage("Script got the id " + id);
|
// world.sendMessage("Script got the id " + id);
|
||||||
mindKeeper.set(AGENT_ID, id);
|
mindKeeper.set(AGENT_ID, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkNpcResponse(event, "cc:startLevel1", 1);
|
||||||
|
checkNpcResponse(event, "cc:afterLevel1", 4);
|
||||||
|
checkNpcResponse(event, "cc:startLevel2", 5);
|
||||||
|
checkNpcResponse(event, "cc:afterLevel2", 7);
|
||||||
|
checkNpcResponse(event, "cc:afterLevel3", 9);
|
||||||
|
checkNpcResponse(event, "cc:afterLevel4", 11);
|
||||||
|
checkNpcResponse(event, "cc:startLevel5", 13);
|
||||||
|
});
|
||||||
|
|
||||||
|
function checkNpcResponse(event: ScriptEventCommandMessageAfterEvent, id: string, level: number) {
|
||||||
|
if (event.id == id) {
|
||||||
|
if (mindKeeper.get(CURRENT_LEVEL) == level) {
|
||||||
|
mindKeeper.increment(CURRENT_LEVEL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
world.afterEvents.worldInitialize.subscribe(() => {
|
||||||
|
mindKeeper.registerStore(CURRENT_LEVEL, StoreType.number);
|
||||||
|
mindKeeper.registerStore(AGENT_ID, StoreType.string);
|
||||||
|
triggerManager.RegisterStores();
|
||||||
|
mindKeeper.registerToWorld();
|
||||||
|
|
||||||
|
triggerManager.Load();
|
||||||
|
});
|
||||||
|
|
||||||
|
world.beforeEvents.itemUseOn.subscribe((event) => {
|
||||||
|
trailMaker.OnItemUse(event);
|
||||||
|
triggerManager.OnItemUse(event);
|
||||||
|
});
|
||||||
|
|
||||||
|
world.afterEvents.chatSend.subscribe(async (event: ChatSendAfterEvent) => {
|
||||||
|
const command = event.message.split(" ")[0];
|
||||||
|
|
||||||
|
trailMaker.OnChat(event);
|
||||||
|
mindKeeper.chatCommands(event);
|
||||||
|
triggerManager.OnChat(event);
|
||||||
|
|
||||||
|
if (command === "!reset") {
|
||||||
|
ResetGate();
|
||||||
|
mindKeeper.set(CURRENT_LEVEL, 0);
|
||||||
|
world.sendMessage("currentlevel = " + mindKeeper.get(CURRENT_LEVEL));
|
||||||
|
world.sendMessage("Resetting");
|
||||||
|
level1.reset();
|
||||||
|
level2.reset();
|
||||||
|
level3.reset();
|
||||||
|
level4.reset();
|
||||||
|
level5.reset();
|
||||||
|
world.getDimension("Overworld").runCommand("/fill -86 71 253 -86 75 275 barrier replace air");
|
||||||
|
world.getDimension("Overworld").runCommand("/fill -182 69 255 -182 74 276 barrier replace air");
|
||||||
|
setNPCDialog("bilal1", "bilal_beforelevel_1_1");
|
||||||
|
setNPCDialog("chanel1", "chanel_beforelevel_2_1");
|
||||||
|
setNPCDialog("farah1", "farah_beforelevel_5_1");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
41
scripts/trails/TransitionTrailBeforeLevel3.ts
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
import { Vector3 } from "@minecraft/server";
|
||||||
|
import { TrailType } from "../Commandeer/trail/trailTypes";
|
||||||
|
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
||||||
|
|
||||||
|
let TransitionTrailBeforeLevel3: TrailType = {
|
||||||
|
name: "TransitionTrailBeforeLevel3",
|
||||||
|
points: [
|
||||||
|
{ index: 1, position: vector3(-125, 71.1, 265.5) },
|
||||||
|
{ index: 2, position: vector3(-126, 71.1, 265.5) },
|
||||||
|
{ index: 3, position: vector3(-127, 71.1, 265.5) },
|
||||||
|
{ index: 4, position: vector3(-128, 71.1, 265.5) },
|
||||||
|
{ index: 5, position: vector3(-129, 71.1, 265.5) },
|
||||||
|
{ index: 6, position: vector3(-130, 71.1, 265.5) },
|
||||||
|
{ index: 7, position: vector3(-131, 71.1, 265.5) },
|
||||||
|
{ index: 8, position: vector3(-132, 71.1, 265.5) },
|
||||||
|
{ index: 9, position: vector3(-133, 71.1, 265.5) },
|
||||||
|
{ index: 10, position: vector3(-134, 71.1, 265.5) },
|
||||||
|
{ index: 11, position: vector3(-135, 71.1, 265.5) },
|
||||||
|
{ index: 12, position: vector3(-136, 71.1, 265.5) },
|
||||||
|
{ index: 13, position: vector3(-137, 71.1, 265.5) },
|
||||||
|
{ index: 14, position: vector3(-138, 71.1, 265.5) },
|
||||||
|
{ index: 15, position: vector3(-139, 71.1, 265.5) },
|
||||||
|
{ index: 16, position: vector3(-140, 71.1, 265.5) },
|
||||||
|
{ index: 17, position: vector3(-141, 71.1, 265.5) },
|
||||||
|
{ index: 18, position: vector3(-141.5, 71.1, 265.5) },
|
||||||
|
{ index: 19, position: vector3(-141.5, 71.1, 266) },
|
||||||
|
{ index: 20, position: vector3(-141.5, 71.1, 267) },
|
||||||
|
{ index: 21, position: vector3(-141.5, 71.1, 268) },
|
||||||
|
{ index: 22, position: vector3(-141.5, 71.1, 269) },
|
||||||
|
{ index: 23, position: vector3(-141.5, 71.1, 270) },
|
||||||
|
{ index: 24, position: vector3(-141.5, 71.1, 271) },
|
||||||
|
{ index: 25, position: vector3(-141.5, 71.1, 272) },
|
||||||
|
{ index: 26, position: vector3(-141.5, 71.1, 273) },
|
||||||
|
{ index: 27, position: vector3(-141.5, 71.1, 274) },
|
||||||
|
{ index: 28, position: vector3(-141.5, 71.1, 275) },
|
||||||
|
{ index: 29, position: vector3(-141.5, 71.1, 276) },
|
||||||
|
{ index: 30, position: vector3(-141.5, 71.1, 277) },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export { TransitionTrailBeforeLevel3 };
|
||||||
24
scripts/trails/TransitionTrailBeforeLevel4.ts
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import { Vector3 } from "@minecraft/server";
|
||||||
|
import { TrailType } from "../Commandeer/trail/trailTypes";
|
||||||
|
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
||||||
|
|
||||||
|
let TransitionTrailBeforeLevel4: TrailType = {
|
||||||
|
name: "TransitionTrailBeforeLevel4",
|
||||||
|
points: [
|
||||||
|
{ index: 1, position: vector3(-141.5, 71.1, 265.5) },
|
||||||
|
{ index: 2, position: vector3(-141.5, 71.1, 266) },
|
||||||
|
{ index: 3, position: vector3(-141.5, 71.1, 267) },
|
||||||
|
{ index: 4, position: vector3(-141.5, 71.1, 268) },
|
||||||
|
{ index: 5, position: vector3(-141.5, 71.1, 269) },
|
||||||
|
{ index: 6, position: vector3(-141.5, 71.1, 270) },
|
||||||
|
{ index: 7, position: vector3(-141.5, 71.1, 271) },
|
||||||
|
{ index: 8, position: vector3(-141.5, 71.1, 272) },
|
||||||
|
{ index: 9, position: vector3(-141.5, 71.1, 273) },
|
||||||
|
{ index: 10, position: vector3(-141.5, 71.1, 274) },
|
||||||
|
{ index: 11, position: vector3(-141.5, 71.1, 275) },
|
||||||
|
{ index: 12, position: vector3(-141.5, 71.1, 276) },
|
||||||
|
{ index: 13, position: vector3(-141.5, 71.1, 277) },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export { TransitionTrailBeforeLevel4 };
|
||||||
51
scripts/trails/TransitionTrailBeforeLevel5.ts
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
import { Vector3 } from "@minecraft/server";
|
||||||
|
import { TrailType } from "../Commandeer/trail/trailTypes";
|
||||||
|
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
||||||
|
|
||||||
|
let TransitionTrailBeforeLevel5: TrailType = {
|
||||||
|
name: "TransitionTrailBeforeLevel5",
|
||||||
|
points: [
|
||||||
|
{ index: 1, position: vector3(-168, 71.1, 265.5) },
|
||||||
|
{ index: 2, position: vector3(-167, 71.1, 265.5) },
|
||||||
|
{ index: 3, position: vector3(-166, 71.1, 265.5) },
|
||||||
|
{ index: 4, position: vector3(-165, 71.1, 265.5) },
|
||||||
|
{ index: 5, position: vector3(-164, 71.1, 265.5) },
|
||||||
|
{ index: 6, position: vector3(-163, 71.1, 265.5) },
|
||||||
|
{ index: 7, position: vector3(-162, 71.1, 265.5) },
|
||||||
|
{ index: 8, position: vector3(-161, 71.1, 265.5) },
|
||||||
|
{ index: 9, position: vector3(-160, 71.1, 265.5) },
|
||||||
|
{ index: 10, position: vector3(-159, 71.1, 265.5) },
|
||||||
|
{ index: 11, position: vector3(-158, 71.1, 265.5) },
|
||||||
|
{ index: 12, position: vector3(-157, 71.1, 265.5) },
|
||||||
|
{ index: 13, position: vector3(-156, 71.1, 265.5) },
|
||||||
|
{ index: 14, position: vector3(-155, 71.1, 265.5) },
|
||||||
|
{ index: 15, position: vector3(-154, 71.1, 265.5) },
|
||||||
|
{ index: 16, position: vector3(-153, 71.1, 265.5) },
|
||||||
|
{ index: 17, position: vector3(-152, 71.1, 265.5) },
|
||||||
|
{ index: 18, position: vector3(-151, 71.1, 265.5) },
|
||||||
|
{ index: 19, position: vector3(-150, 71.1, 265.5) },
|
||||||
|
{ index: 20, position: vector3(-149, 71.1, 265.5) },
|
||||||
|
{ index: 21, position: vector3(-148, 71.1, 265.5) },
|
||||||
|
{ index: 22, position: vector3(-147, 71.1, 265.5) },
|
||||||
|
{ index: 23, position: vector3(-146, 71.1, 265.5) },
|
||||||
|
{ index: 24, position: vector3(-145, 71.1, 265.5) },
|
||||||
|
{ index: 25, position: vector3(-144, 71.1, 265.5) },
|
||||||
|
{ index: 26, position: vector3(-143, 71.1, 265.5) },
|
||||||
|
{ index: 27, position: vector3(-142, 71.1, 265.5) },
|
||||||
|
{ index: 28, position: vector3(-141.5, 71.1, 265.5) },
|
||||||
|
{ index: 29, position: vector3(-141.5, 71.1, 266) },
|
||||||
|
{ index: 30, position: vector3(-141.5, 71.1, 267) },
|
||||||
|
{ index: 31, position: vector3(-141.5, 71.1, 268) },
|
||||||
|
{ index: 32, position: vector3(-141.5, 71.1, 269) },
|
||||||
|
{ index: 33, position: vector3(-141.5, 71.1, 270) },
|
||||||
|
{ index: 34, position: vector3(-141.5, 71.1, 271) },
|
||||||
|
{ index: 35, position: vector3(-141.5, 71.1, 272) },
|
||||||
|
{ index: 36, position: vector3(-141.5, 71.1, 273) },
|
||||||
|
{ index: 37, position: vector3(-141.5, 71.1, 274) },
|
||||||
|
{ index: 38, position: vector3(-141.5, 71.1, 275) },
|
||||||
|
{ index: 39, position: vector3(-141.5, 71.1, 276) },
|
||||||
|
{ index: 40, position: vector3(-141.5, 71.1, 277) },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export { TransitionTrailBeforeLevel5 };
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
import { Vector3 } from "@minecraft/server";
|
|
||||||
import { TrailType } from "../Commandeer/trail/trailTypes";
|
|
||||||
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
|
||||||
|
|
||||||
let TransitionTrailToLevel1: TrailType = {
|
|
||||||
name: "TransitionTrailToLevel1",
|
|
||||||
points: [
|
|
||||||
{ index: 0, position: vector3(-54, 88.1, 265.5) },
|
|
||||||
{ index: 1, position: vector3(-55, 88.1, 265.5) },
|
|
||||||
{ index: 2, position: vector3(-56, 88.1, 265.5) },
|
|
||||||
{ index: 3, position: vector3(-57, 88.1, 265.5) },
|
|
||||||
{ index: 4, position: vector3(-58, 88.1, 265.5) },
|
|
||||||
{ index: 5, position: vector3(-58, 87.1, 265.5) },
|
|
||||||
{ index: 6, position: vector3(-58, 86.1, 265.5) },
|
|
||||||
{ index: 7, position: vector3(-58, 85.1, 265.5) },
|
|
||||||
{ index: 8, position: vector3(-58, 84.1, 265.5) },
|
|
||||||
{ index: 9, position: vector3(-58, 83.1, 265.5) },
|
|
||||||
{ index: 10, position: vector3(-58, 82.1, 265.5) },
|
|
||||||
{ index: 11, position: vector3(-58, 81.1, 265.5) },
|
|
||||||
{ index: 12, position: vector3(-58, 80.1, 265.5) },
|
|
||||||
{ index: 13, position: vector3(-58, 79.1, 265.5) },
|
|
||||||
{ index: 14, position: vector3(-58, 78.1, 265.5) },
|
|
||||||
{ index: 15, position: vector3(-58, 77.1, 265.5) },
|
|
||||||
{ index: 16, position: vector3(-58, 76.1, 265.5) },
|
|
||||||
{ index: 17, position: vector3(-58, 75.1, 265.5) },
|
|
||||||
{ index: 18, position: vector3(-58, 74.1, 265.5) },
|
|
||||||
{ index: 19, position: vector3(-58, 74.1, 264.5) },
|
|
||||||
{ index: 20, position: vector3(-59, 74.1, 264.5) },
|
|
||||||
{ index: 21, position: vector3(-59, 74.1, 263.5) },
|
|
||||||
{ index: 22, position: vector3(-60, 74.1, 263.5) },
|
|
||||||
{ index: 23, position: vector3(-61, 74.1, 263.5) },
|
|
||||||
{ index: 24, position: vector3(-62, 74.1, 263.5) },
|
|
||||||
{ index: 25, position: vector3(-63, 74.1, 263.5) },
|
|
||||||
{ index: 26, position: vector3(-63, 73.1, 263.5) },
|
|
||||||
{ index: 27, position: vector3(-63, 72.1, 263.5) },
|
|
||||||
{ index: 28, position: vector3(-63, 71.1, 263.5) },
|
|
||||||
{ index: 29, position: vector3(-64, 71.1, 263.5) },
|
|
||||||
{ index: 30, position: vector3(-65, 71.1, 263.5) },
|
|
||||||
{ index: 31, position: vector3(-66, 71.1, 263.5) },
|
|
||||||
{ index: 32, position: vector3(-67, 71.1, 263.5) },
|
|
||||||
{ index: 33, position: vector3(-68, 71.1, 263.5) },
|
|
||||||
{ index: 34, position: vector3(-69, 71.1, 263.5) },
|
|
||||||
{ index: 35, position: vector3(-70, 71.1, 263.5) },
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
export { TransitionTrailToLevel1 };
|
|
||||||
@@ -5,42 +5,93 @@ import { vector3 } from "../Commandeer/utils/vectorUtils";
|
|||||||
let TransitionTrailToLevel2: TrailType = {
|
let TransitionTrailToLevel2: TrailType = {
|
||||||
name: "TransitionTrailToLevel2",
|
name: "TransitionTrailToLevel2",
|
||||||
points: [
|
points: [
|
||||||
{ index: 0, position: vector3(-54, 88.1, 265.5) },
|
{ index: 0, position: vector3(-72, 71.1, 265.5) },
|
||||||
{ index: 1, position: vector3(-55, 88.1, 265.5) },
|
{ index: 1, position: vector3(-73, 71.1, 265.5) },
|
||||||
{ index: 2, position: vector3(-56, 88.1, 265.5) },
|
{ index: 2, position: vector3(-74, 71.1, 265.5) },
|
||||||
{ index: 3, position: vector3(-57, 88.1, 265.5) },
|
{ index: 3, position: vector3(-75, 71.1, 265.5) },
|
||||||
{ index: 4, position: vector3(-58, 88.1, 265.5) },
|
{ index: 4, position: vector3(-76, 71.1, 265.5) },
|
||||||
{ index: 5, position: vector3(-58, 87.1, 265.5) },
|
{ index: 5, position: vector3(-77, 71.1, 265.5) },
|
||||||
{ index: 6, position: vector3(-58, 86.1, 265.5) },
|
{ index: 6, position: vector3(-78, 71.1, 265.5) },
|
||||||
{ index: 7, position: vector3(-58, 85.1, 265.5) },
|
{ index: 7, position: vector3(-79, 71.1, 265.5) },
|
||||||
{ index: 8, position: vector3(-58, 84.1, 265.5) },
|
{ index: 8, position: vector3(-80, 71.1, 265.5) },
|
||||||
{ index: 9, position: vector3(-58, 83.1, 265.5) },
|
{ index: 9, position: vector3(-81, 71.1, 265.5) },
|
||||||
{ index: 10, position: vector3(-58, 82.1, 265.5) },
|
{ index: 10, position: vector3(-82, 71.1, 265.5) },
|
||||||
{ index: 11, position: vector3(-58, 81.1, 265.5) },
|
{ index: 11, position: vector3(-83, 71.1, 265.5) },
|
||||||
{ index: 12, position: vector3(-58, 80.1, 265.5) },
|
{ index: 12, position: vector3(-84, 71.1, 265.5) },
|
||||||
{ index: 13, position: vector3(-58, 79.1, 265.5) },
|
{ index: 13, position: vector3(-85, 71.1, 265.5) },
|
||||||
{ index: 14, position: vector3(-58, 78.1, 265.5) },
|
{ index: 14, position: vector3(-85, 71.1, 264.5) },
|
||||||
{ index: 15, position: vector3(-58, 77.1, 265.5) },
|
{ index: 15, position: vector3(-85, 71.1, 263.5) },
|
||||||
{ index: 16, position: vector3(-58, 76.1, 265.5) },
|
{ index: 16, position: vector3(-86, 71.1, 263.5) },
|
||||||
{ index: 17, position: vector3(-58, 75.1, 265.5) },
|
{ index: 17, position: vector3(-87, 71.1, 263.5) },
|
||||||
{ index: 18, position: vector3(-58, 74.1, 265.5) },
|
{ index: 18, position: vector3(-88, 71.1, 263.5) },
|
||||||
{ index: 19, position: vector3(-58, 74.1, 264.5) },
|
{ index: 19, position: vector3(-89, 71.1, 263.5) },
|
||||||
{ index: 20, position: vector3(-59, 74.1, 264.5) },
|
{ index: 20, position: vector3(-90, 71.1, 263.5) },
|
||||||
{ index: 21, position: vector3(-59, 74.1, 263.5) },
|
{ index: 21, position: vector3(-91, 71.1, 263.5) },
|
||||||
{ index: 22, position: vector3(-60, 74.1, 263.5) },
|
{ index: 22, position: vector3(-92, 71.1, 263.5) },
|
||||||
{ index: 23, position: vector3(-61, 74.1, 263.5) },
|
{ index: 23, position: vector3(-92, 71.1, 264.5) },
|
||||||
{ index: 24, position: vector3(-62, 74.1, 263.5) },
|
{ index: 24, position: vector3(-93, 71.1, 264.5) },
|
||||||
{ index: 25, position: vector3(-63, 74.1, 263.5) },
|
{ index: 25, position: vector3(-94, 71.1, 264.5) },
|
||||||
{ index: 26, position: vector3(-63, 73.1, 263.5) },
|
{ index: 26, position: vector3(-95, 71.1, 264.5) },
|
||||||
{ index: 27, position: vector3(-63, 72.1, 263.5) },
|
{ index: 27, position: vector3(-96, 71.1, 264.5) },
|
||||||
{ index: 28, position: vector3(-63, 71.1, 263.5) },
|
{ index: 28, position: vector3(-97, 71.1, 264.5) },
|
||||||
{ index: 29, position: vector3(-64, 71.1, 263.5) },
|
{ index: 29, position: vector3(-98, 71.1, 264.5) },
|
||||||
{ index: 30, position: vector3(-65, 71.1, 263.5) },
|
{ index: 30, position: vector3(-99, 71.1, 264.5) },
|
||||||
{ index: 31, position: vector3(-66, 71.1, 263.5) },
|
{ index: 31, position: vector3(-100, 71.1, 264.5) },
|
||||||
{ index: 32, position: vector3(-67, 71.1, 263.5) },
|
{ index: 32, position: vector3(-100, 71.1, 265.5) },
|
||||||
{ index: 33, position: vector3(-68, 71.1, 263.5) },
|
{ index: 33, position: vector3(-101, 71.1, 265.5) },
|
||||||
{ index: 34, position: vector3(-69, 71.1, 263.5) },
|
{ index: 34, position: vector3(-102, 71.1, 265.5) },
|
||||||
{ index: 35, position: vector3(-70, 71.1, 263.5) },
|
{ index: 35, position: vector3(-103, 71.1, 265.5) },
|
||||||
|
{ index: 36, position: vector3(-104, 71.1, 265.5) },
|
||||||
|
{ index: 37, position: vector3(-105, 71.1, 265.5) },
|
||||||
|
{ index: 38, position: vector3(-106, 71.1, 265.5) },
|
||||||
|
{ index: 39, position: vector3(-107, 71.1, 265.5) },
|
||||||
|
{ index: 40, position: vector3(-108, 71.1, 265.5) },
|
||||||
|
{ index: 41, position: vector3(-109, 71.1, 265.5) },
|
||||||
|
{ index: 42, position: vector3(-110, 71.1, 265.5) },
|
||||||
|
{ index: 43, position: vector3(-111, 71.1, 265.5) },
|
||||||
|
{ index: 44, position: vector3(-112, 71.1, 265.5) },
|
||||||
|
{ index: 45, position: vector3(-113, 71.1, 265.5) },
|
||||||
|
{ index: 46, position: vector3(-114, 71.1, 265.5) },
|
||||||
|
{ index: 47, position: vector3(-115, 71.1, 265.5) },
|
||||||
|
{ index: 48, position: vector3(-116, 71.1, 265.5) },
|
||||||
|
{ index: 49, position: vector3(-117, 71.1, 265.5) },
|
||||||
|
{ index: 50, position: vector3(-118, 71.1, 265.5) },
|
||||||
|
{ index: 51, position: vector3(-119, 71.1, 265.5) },
|
||||||
|
{ index: 52, position: vector3(-120, 71.1, 265.5) },
|
||||||
|
{ index: 53, position: vector3(-121, 71.1, 265.5) },
|
||||||
|
{ index: 54, position: vector3(-122, 71.1, 265.5) },
|
||||||
|
{ index: 55, position: vector3(-123, 71.1, 265.5) },
|
||||||
|
{ index: 56, position: vector3(-124, 71.1, 265.5) },
|
||||||
|
{ index: 57, position: vector3(-125, 71.1, 265.5) },
|
||||||
|
{ index: 58, position: vector3(-126, 71.1, 265.5) },
|
||||||
|
{ index: 59, position: vector3(-127, 71.1, 265.5) },
|
||||||
|
{ index: 60, position: vector3(-128, 71.1, 265.5) },
|
||||||
|
{ index: 61, position: vector3(-129, 71.1, 265.5) },
|
||||||
|
{ index: 62, position: vector3(-130, 71.1, 265.5) },
|
||||||
|
{ index: 63, position: vector3(-131, 71.1, 265.5) },
|
||||||
|
{ index: 64, position: vector3(-132, 71.1, 265.5) },
|
||||||
|
{ index: 65, position: vector3(-133, 71.1, 265.5) },
|
||||||
|
{ index: 66, position: vector3(-134, 71.1, 265.5) },
|
||||||
|
{ index: 67, position: vector3(-135, 71.1, 265.5) },
|
||||||
|
{ index: 68, position: vector3(-136, 71.1, 265.5) },
|
||||||
|
{ index: 69, position: vector3(-137, 71.1, 265.5) },
|
||||||
|
{ index: 70, position: vector3(-138, 71.1, 265.5) },
|
||||||
|
{ index: 71, position: vector3(-139, 71.1, 265.5) },
|
||||||
|
{ index: 72, position: vector3(-140, 71.1, 265.5) },
|
||||||
|
{ index: 73, position: vector3(-141, 71.1, 265.5) },
|
||||||
|
{ index: 74, position: vector3(-141.5, 71.1, 265.5) },
|
||||||
|
{ index: 75, position: vector3(-141.5, 71.1, 266) },
|
||||||
|
{ index: 76, position: vector3(-141.5, 71.1, 267) },
|
||||||
|
{ index: 77, position: vector3(-141.5, 71.1, 268) },
|
||||||
|
{ index: 78, position: vector3(-141.5, 71.1, 269) },
|
||||||
|
{ index: 79, position: vector3(-141.5, 71.1, 270) },
|
||||||
|
{ index: 80, position: vector3(-141.5, 71.1, 271) },
|
||||||
|
{ index: 81, position: vector3(-141.5, 71.1, 272) },
|
||||||
|
{ index: 82, position: vector3(-141.5, 71.1, 273) },
|
||||||
|
{ index: 83, position: vector3(-141.5, 71.1, 274) },
|
||||||
|
{ index: 84, position: vector3(-141.5, 71.1, 275) },
|
||||||
|
{ index: 85, position: vector3(-141.5, 71.1, 276) },
|
||||||
|
{ index: 86, position: vector3(-141.5, 71.1, 277) },
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
import { Vector3 } from "@minecraft/server";
|
|
||||||
import { TrailType } from "../Commandeer/trail/trailTypes";
|
|
||||||
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
|
||||||
|
|
||||||
let TransitionTrailToLevel3: TrailType = {
|
|
||||||
name: "TransitionTrailToLevel3",
|
|
||||||
points: [
|
|
||||||
{ index: 0, position: vector3(-54, 88.1, 265.5) },
|
|
||||||
{ index: 1, position: vector3(-55, 88.1, 265.5) },
|
|
||||||
{ index: 2, position: vector3(-56, 88.1, 265.5) },
|
|
||||||
{ index: 3, position: vector3(-57, 88.1, 265.5) },
|
|
||||||
{ index: 4, position: vector3(-58, 88.1, 265.5) },
|
|
||||||
{ index: 5, position: vector3(-58, 87.1, 265.5) },
|
|
||||||
{ index: 6, position: vector3(-58, 86.1, 265.5) },
|
|
||||||
{ index: 7, position: vector3(-58, 85.1, 265.5) },
|
|
||||||
{ index: 8, position: vector3(-58, 84.1, 265.5) },
|
|
||||||
{ index: 9, position: vector3(-58, 83.1, 265.5) },
|
|
||||||
{ index: 10, position: vector3(-58, 82.1, 265.5) },
|
|
||||||
{ index: 11, position: vector3(-58, 81.1, 265.5) },
|
|
||||||
{ index: 12, position: vector3(-58, 80.1, 265.5) },
|
|
||||||
{ index: 13, position: vector3(-58, 79.1, 265.5) },
|
|
||||||
{ index: 14, position: vector3(-58, 78.1, 265.5) },
|
|
||||||
{ index: 15, position: vector3(-58, 77.1, 265.5) },
|
|
||||||
{ index: 16, position: vector3(-58, 76.1, 265.5) },
|
|
||||||
{ index: 17, position: vector3(-58, 75.1, 265.5) },
|
|
||||||
{ index: 18, position: vector3(-58, 74.1, 265.5) },
|
|
||||||
{ index: 19, position: vector3(-58, 74.1, 264.5) },
|
|
||||||
{ index: 20, position: vector3(-59, 74.1, 264.5) },
|
|
||||||
{ index: 21, position: vector3(-59, 74.1, 263.5) },
|
|
||||||
{ index: 22, position: vector3(-60, 74.1, 263.5) },
|
|
||||||
{ index: 23, position: vector3(-61, 74.1, 263.5) },
|
|
||||||
{ index: 24, position: vector3(-62, 74.1, 263.5) },
|
|
||||||
{ index: 25, position: vector3(-63, 74.1, 263.5) },
|
|
||||||
{ index: 26, position: vector3(-63, 73.1, 263.5) },
|
|
||||||
{ index: 27, position: vector3(-63, 72.1, 263.5) },
|
|
||||||
{ index: 28, position: vector3(-63, 71.1, 263.5) },
|
|
||||||
{ index: 29, position: vector3(-64, 71.1, 263.5) },
|
|
||||||
{ index: 30, position: vector3(-65, 71.1, 263.5) },
|
|
||||||
{ index: 31, position: vector3(-66, 71.1, 263.5) },
|
|
||||||
{ index: 32, position: vector3(-67, 71.1, 263.5) },
|
|
||||||
{ index: 33, position: vector3(-68, 71.1, 263.5) },
|
|
||||||
{ index: 34, position: vector3(-69, 71.1, 263.5) },
|
|
||||||
{ index: 35, position: vector3(-70, 71.1, 263.5) },
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
export { TransitionTrailToLevel3 };
|
|
||||||
120
scripts/trails/TransitionTrailToLevel5.ts
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
import { Vector3 } from "@minecraft/server";
|
||||||
|
import { TrailType } from "../Commandeer/trail/trailTypes";
|
||||||
|
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
||||||
|
|
||||||
|
let TransitionTrailToLevel5: TrailType = {
|
||||||
|
name: "TransitionTrailToLevel5",
|
||||||
|
points: [
|
||||||
|
{ index: 1, position: vector3(-141.5, 71.1, 277) },
|
||||||
|
{ index: 2, position: vector3(-141.5, 71.1, 276) },
|
||||||
|
{ index: 3, position: vector3(-141.5, 71.1, 275) },
|
||||||
|
{ index: 4, position: vector3(-141.5, 71.1, 274) },
|
||||||
|
{ index: 5, position: vector3(-141.5, 71.1, 273) },
|
||||||
|
{ index: 6, position: vector3(-141.5, 71.1, 272) },
|
||||||
|
{ index: 7, position: vector3(-141.5, 71.1, 271) },
|
||||||
|
{ index: 8, position: vector3(-141.5, 71.1, 270) },
|
||||||
|
{ index: 9, position: vector3(-141.5, 71.1, 269) },
|
||||||
|
{ index: 10, position: vector3(-141.5, 71.1, 268) },
|
||||||
|
{ index: 11, position: vector3(-141.5, 71.1, 267) },
|
||||||
|
{ index: 12, position: vector3(-141.5, 71.1, 266) },
|
||||||
|
{ index: 13, position: vector3(-141.5, 71.1, 265.5) },
|
||||||
|
{ index: 14, position: vector3(-142, 71.1, 265.5) },
|
||||||
|
{ index: 15, position: vector3(-143, 71.1, 265.5) },
|
||||||
|
{ index: 16, position: vector3(-144, 71.1, 265.5) },
|
||||||
|
{ index: 17, position: vector3(-145, 71.1, 265.5) },
|
||||||
|
{ index: 18, position: vector3(-146, 71.1, 265.5) },
|
||||||
|
{ index: 19, position: vector3(-147, 71.1, 265.5) },
|
||||||
|
{ index: 20, position: vector3(-148, 71.1, 265.5) },
|
||||||
|
{ index: 21, position: vector3(-149, 71.1, 265.5) },
|
||||||
|
{ index: 22, position: vector3(-150, 71.1, 265.5) },
|
||||||
|
{ index: 23, position: vector3(-151, 71.1, 265.5) },
|
||||||
|
{ index: 24, position: vector3(-152, 71.1, 265.5) },
|
||||||
|
{ index: 25, position: vector3(-153, 71.1, 265.5) },
|
||||||
|
{ index: 26, position: vector3(-154, 71.1, 265.5) },
|
||||||
|
{ index: 27, position: vector3(-155, 71.1, 265.5) },
|
||||||
|
{ index: 28, position: vector3(-156, 71.1, 265.5) },
|
||||||
|
{ index: 29, position: vector3(-157, 71.1, 265.5) },
|
||||||
|
{ index: 30, position: vector3(-158, 71.1, 265.5) },
|
||||||
|
{ index: 31, position: vector3(-159, 71.1, 265.5) },
|
||||||
|
{ index: 32, position: vector3(-160, 71.1, 265.5) },
|
||||||
|
{ index: 33, position: vector3(-161, 71.1, 265.5) },
|
||||||
|
{ index: 34, position: vector3(-162, 71.1, 265.5) },
|
||||||
|
{ index: 35, position: vector3(-163, 71.1, 265.5) },
|
||||||
|
{ index: 36, position: vector3(-164, 71.1, 265.5) },
|
||||||
|
{ index: 37, position: vector3(-165, 71.1, 265.5) },
|
||||||
|
{ index: 38, position: vector3(-166, 71.1, 265.5) },
|
||||||
|
{ index: 39, position: vector3(-167, 71.1, 265.5) },
|
||||||
|
{ index: 40, position: vector3(-168, 71.1, 265.5) },
|
||||||
|
{ index: 41, position: vector3(-169, 71.1, 265.5) },
|
||||||
|
{ index: 42, position: vector3(-170, 71.1, 265.5) },
|
||||||
|
{ index: 43, position: vector3(-171, 71.1, 265.5) },
|
||||||
|
{ index: 44, position: vector3(-172, 71.1, 265.5) },
|
||||||
|
{ index: 45, position: vector3(-173, 71.1, 265.5) },
|
||||||
|
{ index: 46, position: vector3(-174, 71.1, 265.5) },
|
||||||
|
{ index: 47, position: vector3(-175, 71.1, 265.5) },
|
||||||
|
{ index: 48, position: vector3(-176, 71.1, 265.5) },
|
||||||
|
{ index: 49, position: vector3(-177, 71.1, 265.5) },
|
||||||
|
{ index: 50, position: vector3(-178, 71.1, 265.5) },
|
||||||
|
{ index: 51, position: vector3(-179, 71.1, 265.5) },
|
||||||
|
{ index: 52, position: vector3(-180, 71.1, 265.5) },
|
||||||
|
{ index: 53, position: vector3(-181, 71.1, 265.5) },
|
||||||
|
{ index: 54, position: vector3(-182, 71.1, 265.5) },
|
||||||
|
{ index: 55, position: vector3(-183, 71.1, 265.5) },
|
||||||
|
{ index: 56, position: vector3(-184, 71.1, 265.5) },
|
||||||
|
{ index: 57, position: vector3(-185, 71.1, 265.5) },
|
||||||
|
{ index: 58, position: vector3(-186, 71.1, 265.5) },
|
||||||
|
{ index: 59, position: vector3(-187, 71.1, 265.5) },
|
||||||
|
{ index: 60, position: vector3(-188, 71.1, 265.5) },
|
||||||
|
{ index: 61, position: vector3(-189, 71.1, 265.5) },
|
||||||
|
{ index: 62, position: vector3(-190, 71.1, 265.5) },
|
||||||
|
{ index: 63, position: vector3(-191, 71.1, 265.5) },
|
||||||
|
{ index: 64, position: vector3(-192, 71.1, 265.5) },
|
||||||
|
{ index: 65, position: vector3(-193, 71.1, 265.5) },
|
||||||
|
{ index: 66, position: vector3(-194, 71.1, 265.5) },
|
||||||
|
{ index: 67, position: vector3(-195, 71.1, 265.5) },
|
||||||
|
{ index: 68, position: vector3(-196, 71.1, 265.5) },
|
||||||
|
{ index: 69, position: vector3(-197, 71.1, 265.5) },
|
||||||
|
{ index: 70, position: vector3(-198, 71.1, 265.5) },
|
||||||
|
{ index: 71, position: vector3(-199, 71.1, 265.5) },
|
||||||
|
{ index: 72, position: vector3(-200, 71.1, 265.5) },
|
||||||
|
{ index: 73, position: vector3(-201, 71.1, 265.5) },
|
||||||
|
{ index: 74, position: vector3(-202, 71.1, 265.5) },
|
||||||
|
{ index: 75, position: vector3(-203, 71.1, 265.5) },
|
||||||
|
{ index: 76, position: vector3(-203, 70.1, 265.5) },
|
||||||
|
{ index: 77, position: vector3(-204, 70.1, 265.5) },
|
||||||
|
{ index: 78, position: vector3(-205, 70.1, 265.5) },
|
||||||
|
{ index: 79, position: vector3(-206, 70.1, 265.5) },
|
||||||
|
{ index: 80, position: vector3(-207, 70.1, 265.5) },
|
||||||
|
{ index: 81, position: vector3(-208, 70.1, 265.5) },
|
||||||
|
{ index: 82, position: vector3(-209, 70.1, 265.5) },
|
||||||
|
{ index: 83, position: vector3(-210, 70.1, 265.5) },
|
||||||
|
{ index: 84, position: vector3(-211, 70.1, 265.5) },
|
||||||
|
{ index: 85, position: vector3(-211, 69.1, 265.5) },
|
||||||
|
{ index: 86, position: vector3(-212.5, 69.1, 265.5) },
|
||||||
|
{ index: 87, position: vector3(-212.5, 69.1, 264.5) },
|
||||||
|
{ index: 88, position: vector3(-212.5, 69.1, 263.5) },
|
||||||
|
{ index: 89, position: vector3(-212.5, 69.1, 262.5) },
|
||||||
|
{ index: 90, position: vector3(-212.5, 69.1, 261.5) },
|
||||||
|
{ index: 91, position: vector3(-212.5, 69.1, 260.5) },
|
||||||
|
{ index: 92, position: vector3(-212.5, 69.1, 259.5) },
|
||||||
|
{ index: 93, position: vector3(-213.5, 69.1, 259.5) },
|
||||||
|
{ index: 94, position: vector3(-214.5, 69.1, 259.5) },
|
||||||
|
{ index: 95, position: vector3(-215.5, 69.1, 259.5) },
|
||||||
|
{ index: 96, position: vector3(-216.5, 69.1, 259.5) },
|
||||||
|
{ index: 97, position: vector3(-217.5, 69.1, 259.5) },
|
||||||
|
{ index: 98, position: vector3(-217.5, 69.1, 258.5) },
|
||||||
|
{ index: 99, position: vector3(-217.5, 69.1, 257.5) },
|
||||||
|
{ index: 100, position: vector3(-217.5, 69.1, 256.5) },
|
||||||
|
{ index: 101, position: vector3(-217.5, 69.1, 255.5) },
|
||||||
|
{ index: 102, position: vector3(-217.5, 69.1, 254.5) },
|
||||||
|
{ index: 103, position: vector3(-217.5, 69.1, 253.5) },
|
||||||
|
{ index: 104, position: vector3(-217.5, 69.1, 252.5) },
|
||||||
|
{ index: 105, position: vector3(-217.5, 68.1, 252.5) },
|
||||||
|
{ index: 106, position: vector3(-217.5, 68.1, 251.5) },
|
||||||
|
{ index: 107, position: vector3(-217.5, 68.1, 250.5) },
|
||||||
|
{ index: 108, position: vector3(-217.5, 68.1, 249.5) },
|
||||||
|
{ index: 109, position: vector3(-217.5, 68.1, 248.5) },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export { TransitionTrailToLevel5 };
|
||||||
40
scripts/trails/TransitionTrailToTheEnd.ts
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
import { Vector3 } from "@minecraft/server";
|
||||||
|
import { TrailType } from "../Commandeer/trail/trailTypes";
|
||||||
|
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
||||||
|
|
||||||
|
let TransitionTrailToTheEnd: TrailType = {
|
||||||
|
name: "TransitionTrailToTheEnd",
|
||||||
|
points: [
|
||||||
|
{ index: 0, position: vector3(-220, 68.1, 245.5) },
|
||||||
|
{ index: 1, position: vector3(-220, 68.1, 244.5) },
|
||||||
|
{ index: 2, position: vector3(-220, 68.1, 243.5) },
|
||||||
|
{ index: 3, position: vector3(-220, 68.1, 242.5) },
|
||||||
|
{ index: 4, position: vector3(-220, 68.1, 241.5) },
|
||||||
|
{ index: 5, position: vector3(-220, 68.1, 240.5) },
|
||||||
|
{ index: 6, position: vector3(-220, 68.1, 239.5) },
|
||||||
|
{ index: 7, position: vector3(-220, 68.1, 238.5) },
|
||||||
|
{ index: 8, position: vector3(-220, 68.1, 237.5) },
|
||||||
|
{ index: 9, position: vector3(-220, 68.1, 236.5) },
|
||||||
|
{ index: 10, position: vector3(-220, 68.1, 235.5) },
|
||||||
|
{ index: 11, position: vector3(-220, 68.1, 234.5) },
|
||||||
|
{ index: 12, position: vector3(-220, 68.1, 233.5) },
|
||||||
|
{ index: 13, position: vector3(-220, 68.1, 232.5) },
|
||||||
|
{ index: 14, position: vector3(-220, 68.1, 231.5) },
|
||||||
|
{ index: 15, position: vector3(-220, 68.1, 230.5) },
|
||||||
|
{ index: 16, position: vector3(-221, 68.1, 230.5) },
|
||||||
|
{ index: 17, position: vector3(-222, 68.1, 230.5) },
|
||||||
|
{ index: 18, position: vector3(-222, 68.1, 229.5) },
|
||||||
|
{ index: 19, position: vector3(-222, 68.1, 228.5) },
|
||||||
|
{ index: 20, position: vector3(-222, 68.1, 227.5) },
|
||||||
|
{ index: 21, position: vector3(-222, 68.1, 226.5) },
|
||||||
|
{ index: 22, position: vector3(-222, 68.1, 225.5) },
|
||||||
|
{ index: 23, position: vector3(-222, 68.1, 224.5) },
|
||||||
|
{ index: 24, position: vector3(-222, 68.1, 223.5) },
|
||||||
|
{ index: 25, position: vector3(-222, 68.1, 222.5) },
|
||||||
|
{ index: 26, position: vector3(-222, 68.1, 221.5) },
|
||||||
|
{ index: 27, position: vector3(-222, 68.1, 220.5) },
|
||||||
|
{ index: 28, position: vector3(-222, 68.1, 219.5) },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export { TransitionTrailToTheEnd };
|
||||||
@@ -2,46 +2,50 @@ import { Vector3 } from "@minecraft/server";
|
|||||||
import { TrailType } from "../Commandeer/trail/trailTypes";
|
import { TrailType } from "../Commandeer/trail/trailTypes";
|
||||||
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
import { vector3 } from "../Commandeer/utils/vectorUtils";
|
||||||
|
|
||||||
let startTrail: TrailType = {
|
let levelStartTrail: TrailType = {
|
||||||
name: "startTrail",
|
name: "levelStartTrail",
|
||||||
points: [
|
points: [
|
||||||
{ index: 0, position: vector3(-54, 88.1, 265.5) },
|
{ index: 0, position: vector3(-54, 88.1, 265.5) },
|
||||||
{ index: 1, position: vector3(-55, 88.1, 265.5) },
|
{ index: 1, position: vector3(-55, 88.1, 265.5) },
|
||||||
{ index: 2, position: vector3(-56, 88.1, 265.5) },
|
{ index: 2, position: vector3(-56, 88.1, 265.5) },
|
||||||
{ index: 3, position: vector3(-57, 88.1, 265.5) },
|
{ index: 3, position: vector3(-57, 88.1, 265.5) },
|
||||||
{ index: 4, position: vector3(-58, 88.1, 265.5) },
|
{ index: 4, position: vector3(-57.5, 88.1, 265.5) },
|
||||||
{ index: 5, position: vector3(-58, 87.1, 265.5) },
|
{ index: 5, position: vector3(-57.5, 87.1, 265.5) },
|
||||||
{ index: 6, position: vector3(-58, 86.1, 265.5) },
|
{ index: 6, position: vector3(-57.5, 86.1, 265.5) },
|
||||||
{ index: 7, position: vector3(-58, 85.1, 265.5) },
|
{ index: 7, position: vector3(-57.5, 85.1, 265.5) },
|
||||||
{ index: 8, position: vector3(-58, 84.1, 265.5) },
|
{ index: 8, position: vector3(-57.5, 84.1, 265.5) },
|
||||||
{ index: 9, position: vector3(-58, 83.1, 265.5) },
|
{ index: 9, position: vector3(-57.5, 83.1, 265.5) },
|
||||||
{ index: 10, position: vector3(-58, 82.1, 265.5) },
|
{ index: 10, position: vector3(-57.5, 82.1, 265.5) },
|
||||||
{ index: 11, position: vector3(-58, 81.1, 265.5) },
|
{ index: 11, position: vector3(-57.5, 81.1, 265.5) },
|
||||||
{ index: 12, position: vector3(-58, 80.1, 265.5) },
|
{ index: 12, position: vector3(-57.5, 80.1, 265.5) },
|
||||||
{ index: 13, position: vector3(-58, 79.1, 265.5) },
|
{ index: 13, position: vector3(-57.5, 79.1, 265.5) },
|
||||||
{ index: 14, position: vector3(-58, 78.1, 265.5) },
|
{ index: 14, position: vector3(-57.5, 78.1, 265.5) },
|
||||||
{ index: 15, position: vector3(-58, 77.1, 265.5) },
|
{ index: 15, position: vector3(-57.5, 77.1, 265.5) },
|
||||||
{ index: 16, position: vector3(-58, 76.1, 265.5) },
|
{ index: 16, position: vector3(-57.5, 76.1, 265.5) },
|
||||||
{ index: 17, position: vector3(-58, 75.1, 265.5) },
|
{ index: 17, position: vector3(-57.5, 75.1, 265.5) },
|
||||||
{ index: 18, position: vector3(-58, 74.1, 265.5) },
|
{ index: 18, position: vector3(-57.5, 74.1, 265.5) },
|
||||||
{ index: 19, position: vector3(-58, 74.1, 264.5) },
|
{ index: 19, position: vector3(-57.5, 74.1, 264.5) },
|
||||||
{ index: 20, position: vector3(-59, 74.1, 264.5) },
|
{ index: 20, position: vector3(-58.5, 74.1, 264.5) },
|
||||||
{ index: 21, position: vector3(-59, 74.1, 263.5) },
|
{ index: 21, position: vector3(-58.5, 74.1, 263.5) },
|
||||||
{ index: 22, position: vector3(-60, 74.1, 263.5) },
|
{ index: 22, position: vector3(-59.5, 74.1, 263.5) },
|
||||||
{ index: 23, position: vector3(-61, 74.1, 263.5) },
|
{ index: 23, position: vector3(-60.5, 74.1, 263.5) },
|
||||||
{ index: 24, position: vector3(-62, 74.1, 263.5) },
|
{ index: 24, position: vector3(-60.5, 74.1, 262.5) },
|
||||||
{ index: 25, position: vector3(-63, 74.1, 263.5) },
|
{ index: 25, position: vector3(-60.5, 74.1, 261.5) },
|
||||||
{ index: 26, position: vector3(-63, 73.1, 263.5) },
|
{ index: 26, position: vector3(-61.5, 74.1, 261.5) },
|
||||||
{ index: 27, position: vector3(-63, 72.1, 263.5) },
|
{ index: 27, position: vector3(-62.5, 74.1, 261.5) },
|
||||||
{ index: 28, position: vector3(-63, 71.1, 263.5) },
|
{ index: 28, position: vector3(-62.5, 73.1, 261.5) },
|
||||||
{ index: 29, position: vector3(-64, 71.1, 263.5) },
|
{ index: 29, position: vector3(-63.5, 73.1, 261.5) },
|
||||||
{ index: 30, position: vector3(-65, 71.1, 263.5) },
|
{ index: 30, position: vector3(-63.5, 72.1, 261.5) },
|
||||||
{ index: 31, position: vector3(-66, 71.1, 263.5) },
|
{ index: 31, position: vector3(-64.5, 72.1, 261.5) },
|
||||||
{ index: 32, position: vector3(-67, 71.1, 263.5) },
|
{ index: 32, position: vector3(-65.5, 72.1, 261.5) },
|
||||||
{ index: 33, position: vector3(-68, 71.1, 263.5) },
|
{ index: 33, position: vector3(-66.5, 72.1, 261.5) },
|
||||||
{ index: 34, position: vector3(-69, 71.1, 263.5) },
|
{ index: 34, position: vector3(-67.5, 71.1, 261.5) },
|
||||||
{ index: 35, position: vector3(-70, 71.1, 263.5) },
|
{ index: 35, position: vector3(-68.5, 71.1, 261.5) },
|
||||||
|
{ index: 36, position: vector3(-68.5, 71.1, 260.5) },
|
||||||
|
{ index: 37, position: vector3(-68.5, 71.1, 259.5) },
|
||||||
|
{ index: 38, position: vector3(-68.5, 71.1, 258.5) },
|
||||||
|
{ index: 39, position: vector3(-68.5, 71.1, 257.5) },
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
export { startTrail };
|
export { levelStartTrail };
|
||||||
|
|||||||