diff --git a/Minecraft Datapacking/When Two Macros are Faster than One.md b/Minecraft Datapacking/When Two Macros are Faster than One.md index 9e986fa..41e2ee0 100644 --- a/Minecraft Datapacking/When Two Macros are Faster than One.md +++ b/Minecraft Datapacking/When Two Macros are Faster than One.md @@ -6,6 +6,7 @@ While working on my Database datapack (still WIP), I knew I'd want to find # Scenario ## Dataset +The data is stored in a storage `#_macro.array`. Array is populated with a total of 500 entries, each having a `id` and `string` fields. ```json [ { @@ -20,14 +21,16 @@ While working on my Database datapack (still WIP), I knew I'd want to find ] ``` ## Constraints +The objective is to create an interface that receives a keyword, say `entry500`, and searches the array for an entry where the value of `string` matches the keyword. + # One Macro Macros allow us to reach into our array and pick out an entry that matching value in the `string` property. -```haskell -> one_macro.array[string:$(keyword)] +```vb +... one_macro.array[string:$(keyword)] ``` -```haskell --- one_macro/run.mcfunction +```vb +'# one_macro/run.mcfunction data modify storage test_namespace:test_namespace temp.keyword set value 'entry500' @@ -37,14 +40,14 @@ data remove storage test_namespace:test_namespace temp.keyword data remove storage test_namespace:test_namespace temp.result ``` -```haskell --- one_macro/_searcharray.mcfunction +```vb +'# one_macro/_searcharray.mcfunction $data modify storage test_namespace:test_namespace temp.result set from storage test_namespace:test_namespace one_macro.array[string:$(keyword)] ``` # Two Macro ```vb -' two_macro/run.mcfunction +'# two_macro/run.mcfunction data modify storage test_namespace:test_namespace temp.keyword set value 'entry500' @@ -58,13 +61,13 @@ data remove storage test_namespace:test_namespace temp.result ``` ```vb -' two_macro/_searchindex.mcfunction +'# two_macro/_searchindex.mcfunction $data modify storage test_namespace:test_namespace temp.index set from storage test_namespace:test_namespace two_macro.index.$(keyword) ``` ```vb -' two_macro/_searcharray.mcfunction +'# two_macro/_searcharray.mcfunction $data modify storage test_namespace:test_namespace temp.result set from storage test_namespace:test_namespace two_macro.array[$(index)] ``` \ No newline at end of file