Skip to content

Commit

Permalink
feat: Ritual Satchels - speed up drawing pentacles! (#1209)
Browse files Browse the repository at this point in the history
* feat: poc for auto-chalk

* feat: PoC for full pentacle auto chalk

* chore: generify satchel code to allow different sizes

* feat: set up container functionality and icon for ritual satchels

* feat: implement basic real functionality of the t1 satchel

* feat: implement basic real functionaliity of the t2 satchel

* feat: add basic implementation for "collect pentacle"

* feat: add ritual materials tag

* fix: satchel item can be moved while container is open

* feat: add tag filtering to satchel

* fix: shorten error message to fit into screen

* chore: cleanup fulfilled todos

* feat: move binding rituals category into a category provider

* feat: add initial book entries

* feat: add crafting recipes

* feat: spirit name tooltip

* feat: add crafting recipes to book entries

* feat: move getting started content into a category provider

* chore: refactor namespaces

* feat: add getting started entry linking to the satchel entries
  • Loading branch information
klikli-dev authored Sep 15, 2024
1 parent 132f43a commit 2f5be97
Show file tree
Hide file tree
Showing 126 changed files with 5,769 additions and 4,070 deletions.
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ smartbrainlib_version=1.14.5
smartbrainlib_version_range=[1.14.5,)
almost_unified_version=0.5.0
almost_unified_version_range=[0.5.0,)
modonomicon_version=1.105.0
modonomicon_version_range=[1.105.0,)
modonomicon_version=1.106.0
modonomicon_version_range=[1.106.0,)
theurgy_version=1.52.0
theurgy_version_range=[1.47.1,)
per_viam_invenire_version_range=[0.1.57,)
Expand Down
30 changes: 30 additions & 0 deletions src/generated/resources/assets/occultism/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,22 @@
"block.occultism.stripped_otherworld_log": "Stripped Otherworld Log",
"block.occultism.stripped_otherworld_wood": "Stripped Otherworld Wood",
"block.occultism.wither_skeleton_skull_dummy": "Wither Skeleton Skull",
"book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.about.text": "A ritual satchel can hold items needed to create pentacles for rituals. Other items cannot be placed in the satchel.\n\\\nThe satchel allows to speed up setting pentacles by automatically choosing the right items from the satchel, instead of manually selecting chalks, candles and other items to place them.\n",
"book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.about.title": "About",
"book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.description": "Tired of so many chalks and paraphernalia? The Ritual Satchel is the solution!",
"book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.name": "Apprentice Ritual Satchel",
"book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.spotlight.text": " At first glance the satchel appears to be a normal bag, of moderate size and storage capacity. However, closer inspection reveals that a [#](AA00AA)Djinni[#]() is bound to the satchel, tasked with assisting the summoner in drawing pentacles for their rituals.\n",
"book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.usage.text": "1. [#](55FF55)Shift-Right-Click[#]() to open the satchel and place chalks, candles, crystals, skulls and other items needed for rituals.\n2. Using this book, use the \"eye\" icon to preview the pentacle you want to set up in the world.\n3. [#](55FF55)Right-Click[#]() with this book to anchor the preview pentacle in the spot where you want to set it up.\n4. {2} with the satchel on a previewed chalk mark or block to automatically place it.\n5. Repeat until the pentacle is complete.\n",
"book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.usage.title": "Usage",
"book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.about.text": "A ritual satchel can hold items needed to create pentacles for rituals. Other items cannot be placed in the satchel.\n\\\nThe satchel sets up an entire pentacle at once, if all necessary items are present in the satchel.\\\nIt can also remove (intact) pentacles by [#](55FF55)Right-Clicking[#]() the [](item://occultism:golden_sacrificial_bowl) and store all blocks back in the satchel.\n",
"book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.about.title": "About",
"book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.description": "The Apprentice Ritual Satchel is still too slow? Let's get help from an Afrit!",
"book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.name": "Artisanal Ritual Satchel",
"book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.spotlight.text": " The artisanal satchel employs an [#](AA00AA)Afrit[#]() to assist the summoner in drawing pentacles for their rituals. Unlike [#](AA00AA)Djinni[#]() in the apprentice satchel, the bound [#](AA00AA)Afrit[#]() can set up an entire pentacle within a moments notice.\n \\\n Moreover, the spirit can also clean up the pentacle after the ritual is complete, leaving no trace of the ritual behind.\n",
"book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_cleaning.text": "1. Find a pentacle you want to remove. The pentacle needs to be intact (ready for a ritual).\n2. [#](55FF55)Right-Click[#]() the central [](item://occultism:golden_sacrificial_bowl) with the satchel.\n2. The satchel will remove all chalk marks, and pick up all paraphernalia blocks, such as candles or skulls, used in the pentacle.\n",
"book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_cleaning.title": "Usage (Cleaning)",
"book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_drawing.text": "1. [#](55FF55)Shift-Right-Click[#]() to open the satchel and place chalks, candles, crystals, skulls and other items needed for rituals.\n2. Using this book, use the \"eye\" icon to preview the pentacle you want to set up in the world.\n3. [#](55FF55)Right-Click[#]() with this book to anchor the preview pentacle in the spot where you want to set it up.\n4. {2} with the satchel on a previewed chalk mark or block to automatically place it.\n5. Repeat until the pentacle is complete.\n",
"book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_drawing.title": "Usage (Drawing)",
"book.occultism.dictionary_of_spirits.crafting_rituals.craft_afrit_miner.name": "Afrit Miner",
"book.occultism.dictionary_of_spirits.crafting_rituals.craft_afrit_miner.spotlight.text": "The [#](ad03fc)Afrit[#]() miner harvests ores, like djinni miners, and additionally mines deepslate ores. This miner is faster and more efficient than the djinnis, thus damaging the magic lamp even more slowly.\n",
"book.occultism.dictionary_of_spirits.crafting_rituals.craft_dimensional_matrix.name": "Dimensional Matrix",
Expand Down Expand Up @@ -504,6 +520,11 @@
"book.occultism.dictionary_of_spirits.getting_started.ritual_prep_chalk.usage.text": "Right-click on a block with the chalk to draw a single glyph. For decorative purposes you can repeatedly click a block to cycle through glyphs. The shown glyph does not matter for the ritual, only the color.\n",
"book.occultism.dictionary_of_spirits.getting_started.ritual_prep_chalk.usage.title": "Usage",
"book.occultism.dictionary_of_spirits.getting_started.ritual_prep_chalk.white_chalk.text": "White chalk is used to draw the most basic pentacles, such as for our first ritual.\n\\\n\\\nMore powerful summonings require appropriate more advanced chalk, see [Chalks](entry://occultism:dictionary_of_spirits/getting_started/chalks) for more information.\n",
"book.occultism.dictionary_of_spirits.getting_started.ritual_satchels.description": "Easier pentacle drawing with a Ritual Satchel",
"book.occultism.dictionary_of_spirits.getting_started.ritual_satchels.more.text": "Visit the entry about the [Apprentice Satchel](entry://crafting_rituals/apprentice_ritual_satchel) or the [Artisanal Satchel](entry://crafting_rituals/apprentice_ritual_satchel) in the [Binding Rituals Category](category://crafting_rituals) to learn how to enchant a satchel and use it for rituals.\n",
"book.occultism.dictionary_of_spirits.getting_started.ritual_satchels.more.title": "Obtaining a Satchel",
"book.occultism.dictionary_of_spirits.getting_started.ritual_satchels.name": "Ritual Satchels",
"book.occultism.dictionary_of_spirits.getting_started.ritual_satchels.spotlight.text": "Ritual satchels are bags that can hold items needed to create pentacles for rituals.\\\nMore importantly, they can automatically place the right items for a pentacle, removing the need to manually place chalks, candles, crystals, skulls and other items needed for rituals.\\\\\nThe Apprentice Satchel places pentacle blocks one by one.\\\nThe improved Artisanal Satchel places all pentacle blocks in a single action.\\\n",
"book.occultism.dictionary_of_spirits.getting_started.spirit_fire.description": "Or does it?",
"book.occultism.dictionary_of_spirits.getting_started.spirit_fire.main_uses.text": "The main uses of [](item://occultism:spirit_fire) are to convert [](item://minecraft:diamond) into [](item://occultism:spirit_attuned_gem),\nto get basic ingredients such as [](item://occultism:otherstone) and [Otherworld Saplings](item://occultism:otherworld_sapling_natural),\nand to purify impure chalks.\n",
"book.occultism.dictionary_of_spirits.getting_started.spirit_fire.name": "It burns!",
Expand Down Expand Up @@ -1339,6 +1360,15 @@
"item.occultism.ritual_dummy.summon_wild_parrot.tooltip": "Summons a Parrot that can be tamed by anyone, not just the summoner.",
"item.occultism.ritual_dummy.summon_wild_silverfish": "Ritual: Summon The Wild Horde Silverfish",
"item.occultism.ritual_dummy.summon_wild_silverfish.tooltip": "The Wild Horde Silverfish consists of a few Silverfishs that drop items related to ruins trails.",
"item.occultism.ritual_satchel.no_preview_block_targeted": "You need to aim the ritual satchel at a preview block.",
"item.occultism.ritual_satchel.no_preview_in_world": " You need to preview a pentacle using the Dictionary of Spirits.",
"item.occultism.ritual_satchel.no_valid_item_in_satchel": "There is no valid item in the satchel for this previewed block.",
"item.occultism.ritual_satchel_t1": "Apprentice Ritual Satchel",
"item.occultism.ritual_satchel_t1.auto_tooltip": "A basic ritual satchel that can place ritual circles block by block.\nRight-Click a preview block to place it out of the satchel.\nShift-Right-Click to open the satchel and add ritual ingredients.\n",
"item.occultism.ritual_satchel_t1.tooltip": "%s is bound to this satchel.",
"item.occultism.ritual_satchel_t2": "Artisanal Ritual Satchel",
"item.occultism.ritual_satchel_t2.auto_tooltip": "An improved ritual satchel that can place an entire ritual circle at once.\nRight-Click any preview block to place all preview blocks out of the satchel.\nShift-Right-Click to open the satchel and add ritual ingredients.\nRight-Click a Golden Bowl to remove the ritual circle and collect the ingredients.\n",
"item.occultism.ritual_satchel_t2.tooltip": "%s is bound to this satchel.",
"item.occultism.satchel": "Surprisingly Substantial Satchel",
"item.occultism.satchel.tooltip": "%s is bound to this satchel.",
"item.occultism.silver_dust": "Silver Dust",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"parent": "occultism:item/ritual_dummy"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"parent": "occultism:item/ritual_dummy"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "occultism:item/ritual_satchel_t1"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "occultism:item/ritual_satchel_t2"
}
}
6 changes: 6 additions & 0 deletions src/generated/resources/data/c/tags/item/skulls.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"values": [
"minecraft:skeleton_skull",
"minecraft:wither_skeleton_skull"
]
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"values": [
"#occultism:miners",
"#occultism:tools/chalks",
"#occultism:tools/chalk",
"#occultism:tools/knife"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_bound_djinni": {
"conditions": {
"items": [
{
"items": "occultism:book_of_binding_bound_djinni"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "occultism:ritual/craft_ritual_satchel_t1"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_bound_djinni"
]
],
"rewards": {
"recipes": [
"occultism:ritual/craft_ritual_satchel_t1"
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_bound_afrit": {
"conditions": {
"items": [
{
"items": "occultism:book_of_binding_bound_afrit"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "occultism:ritual/craft_ritual_satchel_t2"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_bound_afrit"
]
],
"rewards": {
"recipes": [
"occultism:ritual/craft_ritual_satchel_t2"
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
{
"background_u_index": 0,
"background_v_index": 0,
"category": "crafting_rituals",
"condition": {
"type": "modonomicon:true"
},
"description": "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.description",
"hide_while_locked": false,
"icon": {
"item": "occultism:ritual_satchel_t1"
},
"name": "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.name",
"pages": [
{
"type": "modonomicon:spotlight",
"anchor": "",
"condition": {
"type": "modonomicon:none"
},
"item": {
"item": "occultism:ritual_satchel_t1"
},
"text": "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.spotlight.text",
"title": ""
},
{
"type": "modonomicon:text",
"anchor": "",
"condition": {
"type": "modonomicon:none"
},
"show_title_separator": true,
"text": "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.about.text",
"title": "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.about.title",
"use_markdown_in_title": false
},
{
"type": "occultism:ritual_recipe",
"anchor": "",
"condition": {
"type": "modonomicon:none"
},
"recipe_id_1": "occultism:ritual/craft_ritual_satchel_t1",
"text": "",
"title1": "",
"title2": ""
},
{
"type": "modonomicon:text",
"anchor": "",
"condition": {
"type": "modonomicon:none"
},
"show_title_separator": true,
"text": "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.usage.text",
"title": "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.usage.title",
"use_markdown_in_title": false
}
],
"parents": [
{
"draw_arrow": true,
"entry": "crafting_rituals/craft_satchel",
"line_enabled": true,
"line_reversed": false
}
],
"show_when_any_parent_unlocked": false,
"sort_number": 19,
"x": 3,
"y": 1
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
{
"background_u_index": 0,
"background_v_index": 0,
"category": "crafting_rituals",
"condition": {
"type": "modonomicon:true"
},
"description": "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.description",
"hide_while_locked": false,
"icon": {
"item": "occultism:ritual_satchel_t2"
},
"name": "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.name",
"pages": [
{
"type": "modonomicon:spotlight",
"anchor": "",
"condition": {
"type": "modonomicon:none"
},
"item": {
"item": "occultism:ritual_satchel_t2"
},
"text": "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.spotlight.text",
"title": ""
},
{
"type": "modonomicon:text",
"anchor": "",
"condition": {
"type": "modonomicon:none"
},
"show_title_separator": true,
"text": "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.about.text",
"title": "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.about.title",
"use_markdown_in_title": false
},
{
"type": "occultism:ritual_recipe",
"anchor": "",
"condition": {
"type": "modonomicon:none"
},
"recipe_id_1": "occultism:ritual/craft_ritual_satchel_t2",
"text": "",
"title1": "",
"title2": ""
},
{
"type": "modonomicon:text",
"anchor": "",
"condition": {
"type": "modonomicon:none"
},
"show_title_separator": true,
"text": "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_drawing.text",
"title": "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_drawing.title",
"use_markdown_in_title": false
},
{
"type": "modonomicon:text",
"anchor": "",
"condition": {
"type": "modonomicon:none"
},
"show_title_separator": true,
"text": "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_cleaning.text",
"title": "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_cleaning.title",
"use_markdown_in_title": false
}
],
"parents": [
{
"draw_arrow": true,
"entry": "crafting_rituals/apprentice_ritual_satchel",
"line_enabled": true,
"line_reversed": false
}
],
"show_when_any_parent_unlocked": false,
"sort_number": 20,
"x": 5,
"y": 1
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
}
],
"show_when_any_parent_unlocked": false,
"sort_number": -1,
"sort_number": 6,
"x": 0,
"y": -5
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
}
],
"show_when_any_parent_unlocked": false,
"sort_number": -1,
"sort_number": 9,
"x": -2,
"y": 1
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
}
],
"show_when_any_parent_unlocked": false,
"sort_number": -1,
"sort_number": 3,
"x": -6,
"y": -5
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
}
],
"show_when_any_parent_unlocked": false,
"sort_number": -1,
"sort_number": 5,
"x": -2,
"y": -5
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
}
],
"show_when_any_parent_unlocked": false,
"sort_number": -1,
"sort_number": 22,
"x": -2,
"y": -3
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
}
],
"show_when_any_parent_unlocked": false,
"sort_number": -1,
"sort_number": 4,
"x": -4,
"y": -5
}
Loading

0 comments on commit 2f5be97

Please sign in to comment.