Skip to content

Commit f298b79

Browse files
committed
Ya no hay camino que recorra tu pasado
1 parent 8c7ffb7 commit f298b79

File tree

5 files changed

+140
-84
lines changed

5 files changed

+140
-84
lines changed
7.6 MB
Binary file not shown.
116 Bytes
Loading
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
{
2+
"namespace": "whynot",
3+
4+
"overlay_anim": {
5+
"anim_type": "aseprite_flip_book",
6+
"initial_uv": [0, 0]
7+
},
8+
"long_form": {
9+
"modifications": [
10+
{
11+
"array_name": "bindings",
12+
"operation": "insert_back",
13+
"value": [
14+
{
15+
"binding_name": "#title_text"
16+
},
17+
{
18+
"binding_type": "view",
19+
"source_property_name": "((#title_text - 'camino_recorra_tu_pasado') = #title_text)", // We need to define the title we added on $title_needs_to_contain
20+
// By the way, you can also put the title of your forms as much as you want like this -> (#title_text - 'form_1' - 'form_2' - 'form_3')
21+
"target_property_name": "#visible"
22+
}
23+
]
24+
}
25+
]
26+
},
27+
"crtp_form_panel": {
28+
"type": "panel", // We can use any types but we will use panels for simplicity
29+
"bindings": [
30+
{
31+
"binding_name": "#title_text" // We define the title text inside the parent so we don't need to call it every time we use it
32+
}
33+
],
34+
"controls": [
35+
{
36+
"crtp_long_form": {
37+
"type": "image",
38+
"texture": "textures/black",
39+
"size": [1024, 1024],
40+
"layer": 200,
41+
"$title_needs_to_contain": "camino_recorra_tu_pasado", // What the action form title needs to contain in order for this apple to show
42+
"controls": [{
43+
"crtp_long_form_bg": {
44+
"type": "image",
45+
"texture": "textures/camino_recorra_tu_pasado",
46+
"size": [531, 405],
47+
"uv_size": [118, 90],
48+
"uv": "@overlay_anim",
49+
"layer": 250
50+
}
51+
}],
52+
"bindings": [
53+
{
54+
"binding_type": "view",
55+
"source_control_name": "crtp_form_panel", // The name of our parent where we could get the #title_text binding
56+
"source_property_name": "(not ((#title_text - $title_needs_to_contain) = #title_text))",
57+
"target_property_name": "#visible"
58+
}
59+
]
60+
}
61+
}
62+
]
63+
},
64+
"main_screen_content": {
65+
"modifications": [
66+
{
67+
"array_name": "controls",
68+
"operation": "insert_back",
69+
"value": [
70+
{
71+
"crtp_server_form_factory": {
72+
"type": "panel",
73+
"factory": {
74+
"name": "server_form_factory",
75+
"control_ids": {
76+
"long_form": "@server_form.crtp_form_panel"
77+
}
78+
}
79+
}
80+
}
81+
]
82+
}
83+
]
84+
}
85+
}

resource_packs/whynot/ui/server_forms.json

Lines changed: 0 additions & 72 deletions
This file was deleted.

scripts/main.ts

Lines changed: 55 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,60 @@
1-
import { CustomForm, Observable, ModalFormData, ActionFormData } from "@minecraft/server-ui";
1+
import { ActionFormData, uiManager } from "@minecraft/server-ui";
22
import { world, system, Player, Entity } from "@minecraft/server";
3+
import { MinecraftBlockTypes } from "@minecraft/vanilla-data";
34

4-
world.afterEvents.blockContainerOpened.subscribe((ev) => open_jumpscare(ev.openSource.entity as Player));
5-
world.afterEvents.entityContainerOpened.subscribe((ev) => open_jumpscare(ev.openSource.entity as Player));
5+
6+
const blocks = [
7+
"chest",
8+
"barrel",
9+
"shulker_box"
10+
]
11+
const entities = [
12+
"villager_v2"
13+
]
14+
world.beforeEvents.playerInteractWithBlock.subscribe(ev => {
15+
if (Math.random() > 0.125) return;
16+
17+
if (!ev.isFirstEvent) return;
18+
let is_interactable = false;
19+
for (let block of blocks) {
20+
if (!ev.block.typeId.endsWith(block)) continue;
21+
is_interactable = true;
22+
break;
23+
}
24+
if (!is_interactable) return;
25+
26+
ev.cancel = true;
27+
system.run(() => open_jumpscare(ev.player));
28+
});
29+
world.beforeEvents.playerInteractWithEntity.subscribe(ev => {
30+
if (Math.random() > 0.125) return;
31+
32+
let is_interactable = false;
33+
for (let entity of entities) {
34+
if (!ev.target.typeId.endsWith(entity)) continue;
35+
is_interactable = true;
36+
break;
37+
}
38+
if (!is_interactable) return;
39+
40+
ev.cancel = true;
41+
system.run(() => open_jumpscare(ev.player));
42+
});
643

744
function open_jumpscare(player: Player | undefined) {
8-
if (player == undefined) return;
9-
if (player.typeId != "minecraft:player") return;
10-
const form = new ActionFormData();
11-
form.title("wiki_form:");
12-
13-
form.show(player);
14-
player.playMusic("camino_recorra_tu_pasado");
15-
// player.addTag("camino_recorra_tu_pasado");
16-
// system.runTimeout(() => player.removeTag("camino_recorra_tu_pasado"), 200)
45+
if (player == undefined) return;
46+
if (player.typeId != "minecraft:player") return;
47+
const form = new ActionFormData();
48+
form.title("camino_recorra_tu_pasado");
49+
let runId = system.runTimeout(() => uiManager.closeAllForms(player), 3140);
50+
51+
52+
player.playMusic("camino_recorra_tu_pasado")
53+
form.show(player)
54+
.finally(() => {
55+
system.run(() => {
56+
player.stopMusic()
57+
});
58+
system.clearRun(runId);
59+
});
1760
}

0 commit comments

Comments
 (0)