vault backup: 2025-03-24 23:04:56
All checks were successful
Update pages on webserver / Update (push) Successful in 5s
All checks were successful
Update pages on webserver / Update (push) Successful in 5s
This commit is contained in:
parent
2fb9fb3e36
commit
008e8a4ef2
6
.obsidian/workspace.json
vendored
6
.obsidian/workspace.json
vendored
@ -13,12 +13,12 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "Minecraft Datapacking/When Two Macros are Faster than One.md",
|
"file": "Minecraft Datapacking/When Two Macros are Faster Than One.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "When Two Macros are Faster than One"
|
"title": "When Two Macros are Faster Than One"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -183,7 +183,7 @@
|
|||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"Minecraft Server Administration/Tips for Minecraft Server Administration.md",
|
"Minecraft Server Administration/Tips for Minecraft Server Administration.md",
|
||||||
"Minecraft Server Administration/index.md",
|
"Minecraft Server Administration/index.md",
|
||||||
"Minecraft Datapacking/When Two Macros are Faster than One.md",
|
"Minecraft Datapacking/When Two Macros are Faster Than One.md",
|
||||||
"Minecraft Datapacking/Arrays",
|
"Minecraft Datapacking/Arrays",
|
||||||
"Minecraft Datapacking",
|
"Minecraft Datapacking",
|
||||||
"index.md",
|
"index.md",
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
title: When Two Macros are Faster than One
|
title: when two macros are faster than one
|
||||||
draft: "false"
|
draft: "false"
|
||||||
---
|
---
|
||||||
While working on my Database datapack (still WIP), I knew I'd want to find
|
While working on my Database datapack (still WIP), I knew I'd want to find
|
||||||
|
|
||||||
# Scenario
|
# scenario
|
||||||
## Dataset
|
## dataset
|
||||||
The data is stored in a storage `#_macro.array`. Array is populated with a total of 500 entries, each having `id` and `string` fields.
|
The data is stored in a storage `#_macro.array`. Array is populated with a total of 500 entries, each having `id` and `string` fields.
|
||||||
```json
|
```json
|
||||||
[
|
[
|
||||||
@ -20,8 +20,10 @@ The data is stored in a storage `#_macro.array`. Array is populated with a total
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
## Constraints
|
## constraints
|
||||||
The objective is to create an interface that receives a keyword, say `entry500`, and searches `#_macro.array` for an entry where the value of `string` matches the keyword. The keyword
|
The objective is to create an interface that receives a keyword, say `entry500`, and searches `#_macro.array` for an entry where the value of `string` matches the keyword.
|
||||||
|
|
||||||
|
The keyword must be able to be entered by a player at runtime, and `#_macro.array` can have an arbitrary number of custom entries created by a player.
|
||||||
|
|
||||||
In TypeScript, it would look something like this:
|
In TypeScript, it would look something like this:
|
||||||
```ts
|
```ts
|
||||||
@ -32,7 +34,8 @@ function searchArray(keyword: string) {
|
|||||||
|
|
||||||
searchArray('entry500')
|
searchArray('entry500')
|
||||||
```
|
```
|
||||||
# One Macro
|
In mcfunction, this is not so easy. We *could* use macros
|
||||||
|
# one macro
|
||||||
Macros allow us to reach into our array and pick out an entry that matching value in the `string` property.
|
Macros allow us to reach into our array and pick out an entry that matching value in the `string` property.
|
||||||
```vb
|
```vb
|
||||||
... one_macro.array[string:$(keyword)]
|
... one_macro.array[string:$(keyword)]
|
||||||
@ -54,7 +57,7 @@ data remove storage test_namespace:test_namespace temp.result
|
|||||||
|
|
||||||
$data modify storage test_namespace:test_namespace temp.result set from storage test_namespace:test_namespace one_macro.array[string:$(keyword)]
|
$data modify storage test_namespace:test_namespace temp.result set from storage test_namespace:test_namespace one_macro.array[string:$(keyword)]
|
||||||
```
|
```
|
||||||
# Two Macro
|
# two macro
|
||||||
```vb
|
```vb
|
||||||
'# two_macro/run.mcfunction
|
'# two_macro/run.mcfunction
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user