Merge remote-tracking branch 'origin/1.20.4' into 1.20.4

This commit is contained in:
Flanks255 2024-03-05 17:34:58 -06:00
commit f9df9226bf
18 changed files with 223 additions and 23 deletions

View file

@ -84,6 +84,11 @@ dependencies {
runtimeOnly "mezz.jei:jei-${game_version}-neoforge:${jei_version}"
compileOnly "vazkii.patchouli:Patchouli:${patchouli_version}"
runtimeOnly "vazkii.patchouli:Patchouli:${patchouli_version}"
compileOnly "xyz.brassgoggledcoders:PatchouliProvider:${patchouli_provider_version}"
runtimeOnly "xyz.brassgoggledcoders:PatchouliProvider:${patchouli_provider_version}"
runtimeOnly "curse.maven:the-one-probe-245211:5084077"
runtimeOnly "curse.maven:mekanism-268560:5155329"
}

View file

@ -15,3 +15,5 @@ neogradle.subsystems.parchment.mappingsVersion=2024.02.25
# Other mods
jei_version=17.3.0.49
patchouli_version=1.20.4-85-NEOFORGE-SNAPSHOT
patchouli_provider_version=1.20.4-1.0.10-Snapshot.6

View file

@ -1,4 +1,4 @@
// 1.20.4 2024-03-04T22:51:31.610431 Item Models: actuallyadditions
// 1.20.4 2024-03-05T23:33:24.583284 Item Models: actuallyadditions
1966de13838437bc6035f3649976a44797cf5144 assets/actuallyadditions/models/item/advanced_coil.json
24594fc68e66011dc2d7b79b92c94b387e710318 assets/actuallyadditions/models/item/advanced_leaf_blower.json
ba2d814e269cdef72e1045f200b3c20ed6961517 assets/actuallyadditions/models/item/atomic_reconstructor.json
@ -20,6 +20,7 @@ a41a81204caeddaaeaba35a5d1087361d7df5eae assets/actuallyadditions/models/item/bl
c8974657e959db31495382cf6a86a3367df5d8c9 assets/actuallyadditions/models/item/black_quartz_slab.json
74aaa894cd68cf64f8ad5aac0e7c0b26cdb0a021 assets/actuallyadditions/models/item/black_quartz_stair.json
7e8476e561bd4854b54ce79cb798fd9b2915efb4 assets/actuallyadditions/models/item/black_quartz_wall.json
a921bf283b5864b283ffff0737d8c3c89487dd08 assets/actuallyadditions/models/item/booklet.json
8f1232a569a12d54b1053fae05dc85d23b28ed42 assets/actuallyadditions/models/item/breaker.json
d376ad8923f1f63c1ed4429288b479cfbb235d44 assets/actuallyadditions/models/item/canola.json
fa77f5b54168ff7c11c5ce9fbe342eb7298a9ec8 assets/actuallyadditions/models/item/canola_oil_bucket.json

View file

@ -0,0 +1,6 @@
// 1.20.4 2024-03-06T00:00:49.130919 Patchouli Book Provider
25f9d206f1f0397918f65634d57f658516f3c952 assets/actuallyadditions/patchouli_books/booklet/en_us/categories/getting_started.json
88df6be8c958d5e89673e9eefcf73315d50bda9f assets/actuallyadditions/patchouli_books/booklet/en_us/entries/guide.json
49e2d21f416f97f2e952ceb8e003e8497e926e03 assets/actuallyadditions/patchouli_books/booklet/en_us/entries/intro.json
78d1f1a0d393feaf903c84d11ac2749d17779217 assets/actuallyadditions/patchouli_books/booklet/en_us/entries/tutorial.json
10146f4dd5bab35ef00a724fab1f3762e5f7c2b9 data/actuallyadditions/patchouli_books/booklet/book.json

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/handheld",
"textures": {
"layer0": "actuallyadditions:item/booklet"
}
}

View file

@ -0,0 +1,5 @@
{
"description": "",
"icon": "actuallyadditions:booklet",
"name": "booklet.actuallyadditions.indexEntry.getting_started"
}

View file

@ -0,0 +1,27 @@
{
"category": "actuallyadditions:getting_started",
"icon": "actuallyadditions:textures/item/youtube.png",
"name": "booklet.actuallyadditions.chapter.video_guide",
"pages": [
{
"type": "patchouli:link",
"link_text": "booklet.actuallyadditions.chapter.video_guide.booty.button",
"text": "booklet.actuallyadditions.chapter.video_guide.booty.text.1",
"url": "https://www.youtube.com/watch?v=fhjz0Ew56pM"
},
{
"type": "patchouli:text",
"text": "booklet.actuallyadditions.chapter.video_guide.booty.text.2"
},
{
"type": "patchouli:link",
"link_text": "booklet.actuallyadditions.chapter.video_guide.booty.button",
"text": "booklet.actuallyadditions.chapter.video_guide.dire.text.1",
"url": "https://www.youtube.com/playlist?list=PLJeFZ64pT89MrTRZYzD_rtHFajPVlt6cF"
},
{
"type": "patchouli:text",
"text": "booklet.actuallyadditions.chapter.video_guide.dire.text.2"
}
]
}

View file

@ -0,0 +1,19 @@
{
"category": "actuallyadditions:getting_started",
"icon": "actuallyadditions:booklet",
"name": "booklet.actuallyadditions.chapter.intro",
"pages": [
{
"type": "patchouli:text",
"text": "booklet.actuallyadditions.chapter.intro.text.1"
},
{
"type": "patchouli:text",
"text": "booklet.actuallyadditions.chapter.intro.text.2"
},
{
"type": "patchouli:text",
"text": "booklet.actuallyadditions.chapter.intro.text.3"
}
]
}

View file

@ -0,0 +1,25 @@
{
"category": "actuallyadditions:getting_started",
"icon": "actuallyadditions:booklet",
"name": "booklet.actuallyadditions.chapter.book_tutorial",
"pages": [
{
"type": "patchouli:text",
"text": "booklet.actuallyadditions.chapter.book_tutorial.text.1"
},
{
"type": "patchouli:text",
"text": "booklet.actuallyadditions.chapter.book_tutorial.text.2"
},
{
"type": "patchouli:text",
"text": "booklet.actuallyadditions.chapter.book_tutorial.text.3"
},
{
"type": "patchouli:crafting",
"recipe": "actuallyadditions:booklet",
"text": "booklet.actuallyadditions.shapeless_recipe",
"title": ""
}
]
}

View file

@ -0,0 +1,21 @@
{
"book_texture": "actuallyadditions:textures/gui/booklet/booklet.png",
"creative_tab": "actuallyadditions.tab",
"custom_book_item": "actuallyadditions:booklet",
"dont_generate_book": true,
"i18n": true,
"landing_text": "<i>To be perfectly honest, I never actually realized how much content Actually Additions has before.<r><n> - Ellpeck",
"macros": {
"<i>": "$(o)",
"<imp>": "$(2)",
"<item>": "$(9)",
"<n>": "$(br)",
"<r>": "$()",
"<tifisgrin>": "$(4)$(n)"
},
"name": "booklet.actuallyadditions.item.actuallyadditions.booklet",
"show_progress": false,
"use_blocky_font": false,
"use_resource_pack": true,
"version": "153"
}

View file

@ -1,5 +1,6 @@
package de.ellpeck.actuallyadditions.data;
import de.ellpeck.actuallyadditions.data.patchouli.PachouliGenerator;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.gen.ActuallyBiomeModifiers;
import de.ellpeck.actuallyadditions.mod.gen.ActuallyConfiguredFeatures;
@ -61,6 +62,8 @@ public class ActuallyAdditionsData {
generator.addProvider(true, new SoundsGenerator(packOutput, helper));
generator.addProvider(true, new PachouliGenerator(packOutput));
generator.addProvider(event.includeServer(), new DatapackBuiltinEntriesProvider(
packOutput, patchedProvider, Set.of(ActuallyAdditions.MODID)));
}

View file

@ -29,7 +29,7 @@ public class ItemModelGenerator extends ItemModelProvider {
@Override
protected void registerModels() {
// Items
//simpleItem(ActuallyItems.BOOKLET); // will require complex I think
simpleItem(ActuallyItems.ITEM_BOOKLET); // will require complex I think
// All items?
ActuallyItems.SIMPLE_ITEMS.forEach(this::simpleItem);

View file

@ -0,0 +1,76 @@
package de.ellpeck.actuallyadditions.data.patchouli;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
import net.minecraft.data.PackOutput;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack;
import xyz.brassgoggledcoders.patchouliprovider.BookBuilder;
import xyz.brassgoggledcoders.patchouliprovider.CategoryBuilder;
import xyz.brassgoggledcoders.patchouliprovider.PatchouliBookProvider;
import java.util.function.Consumer;
public class PachouliGenerator extends PatchouliBookProvider {
public PachouliGenerator(PackOutput output) {
super(output, ActuallyAdditions.MODID, "en_us");
}
@Override
protected void addBooks(Consumer<BookBuilder> consumer) {
final ItemStack bookStack = ActuallyItems.ITEM_BOOKLET.get().getDefaultInstance();
BookBuilder bookBuilder = createBookBuilder("booklet",
prefix("item.actuallyadditions.booklet"), "<i>To be perfectly honest, I never actually realized how much content Actually Additions has before.<r><n> - Ellpeck")
.setVersion("153")
.setCreativeTab("actuallyadditions.tab")
.setCustomBookItem(bookStack)
.setBookTexture("actuallyadditions:textures/gui/booklet/booklet.png")
.setShowProgress(false)
.setUseBlockyFont(false)
.setI18n(true)
.setDontGenerateBook(true)
.addMacro("<imp>", "$(2)")
.addMacro("<item>", "$(9)")
.addMacro("<r>", "$()")
.addMacro("<n>", "$(br)")
.addMacro("<i>", "$(o)")
.addMacro("<tifisgrin>", "$(4)$(n)")
.setUseResourcePack(true);
//Getting Started
CategoryBuilder gettingStarted = bookBuilder.addCategory("getting_started", prefix("indexEntry.getting_started"),
"", bookStack);
gettingStarted.addEntry("tutorial", prefix("chapter.book_tutorial"), bookStack)
.addTextPage(prefix("chapter.book_tutorial.text.1")).build()
.addTextPage(prefix("chapter.book_tutorial.text.2")).build()
.addTextPage(prefix("chapter.book_tutorial.text.3")).build()
.addCraftingPage(new ResourceLocation(ActuallyAdditions.MODID, "booklet")).setTitle("").setText("booklet.actuallyadditions.shapeless_recipe").build();
gettingStarted.addEntry("guide", prefix("chapter.video_guide"), "actuallyadditions:textures/item/youtube.png")
.addLinkPage("https://www.youtube.com/watch?v=fhjz0Ew56pM", prefix("chapter.video_guide.booty.button"))
.setText(prefix("chapter.video_guide.booty.text.1")).build()
.addTextPage(prefix("chapter.video_guide.booty.text.2")).build()
.addLinkPage("https://www.youtube.com/playlist?list=PLJeFZ64pT89MrTRZYzD_rtHFajPVlt6cF", prefix("chapter.video_guide.booty.button"))
.setText(prefix("chapter.video_guide.dire.text.1")).build()
.addTextPage(prefix("chapter.video_guide.dire.text.2")).build();
gettingStarted.addEntry("intro", prefix("chapter.intro"), bookStack)
.addTextPage(prefix("chapter.intro.text.1")).build()
.addTextPage(prefix("chapter.intro.text.2")).build()
.addTextPage(prefix("chapter.intro.text.3")).build();
//End of Getting Started
//Finish book
bookBuilder.build(consumer);
}
private String prefix(String name) {
return "booklet.actuallyadditions." + name;
}
}

View file

@ -37,7 +37,7 @@ public class GuiFilter extends AAScreen<ContainerFilter> {
@Override
public void renderLabels(@Nonnull GuiGraphics guiGraphics, int x, int y) {
AssetUtil.displayNameString(guiGraphics, this.font, this.imageWidth, -10, I18n.get("container." + ActuallyAdditions.MODID + ".filter.name"));
AssetUtil.displayNameString(guiGraphics, this.font, this.imageWidth, -10, I18n.get("container." + ActuallyAdditions.MODID + ".filter"));
}
@Override

View file

@ -76,6 +76,8 @@ public class ItemBooklet extends ItemBase implements IHudDisplay {
if (advancement != null && !advancements.getOrStartProgress(advancement).isDone()) {
advancements.award(advancement, "right_click");
}
} else {
vazkii.patchouli.api.PatchouliAPI.get().openBookGUI(new ResourceLocation(ActuallyAdditions.MODID, "booklet"));
}
// player.openGui(ActuallyAdditions.INSTANCE, GuiHandler.GuiTypes.BOOK.ordinal(), world, (int) player.posX, (int) player.posY, (int) player.posZ);
//
@ -89,11 +91,11 @@ public class ItemBooklet extends ItemBase implements IHudDisplay {
@OnlyIn(Dist.CLIENT)
@Override
public void appendHoverText(ItemStack stack, @Nullable Level playerIn, List<Component> tooltip, TooltipFlag advanced) {
tooltip.add(Component.translatable("tooltip." + ActuallyAdditions.MODID + "." + this.getDescription().getString() + ".desc"));
tooltip.add(Component.translatable("tooltip." + ActuallyAdditions.MODID + ".item_booklet.desc").withStyle(ChatFormatting.GRAY));
// TODO: this is bad
for (int i = 1; i <= 4; i++) {
tooltip.add(Component.translatable("tooltip." + ActuallyAdditions.MODID + "." + this.getDescription().getString() + ".sub." + i).withStyle(i == 4
tooltip.add(Component.translatable("tooltip." + ActuallyAdditions.MODID + ".item_booklet.sub." + i).withStyle(i == 4
? ChatFormatting.GOLD
: ChatFormatting.RESET).withStyle(i == 4
? ChatFormatting.ITALIC

View file

@ -648,16 +648,16 @@
"achievement.actuallyadditions.completeTrials": "A Botanist's Dream",
"achievement.actuallyadditions.completeTrials.desc": "Complete all Trials in the Manual",
"_comment": "Booklet Recipe Names",
"booklet.actuallyadditions.shapelessRecipe": "Shapeless Recipe",
"booklet.actuallyadditions.shapedRecipe": "Shaped Recipe",
"booklet.actuallyadditions.shapelessOreRecipe": "Shapeless OreDict Recipe",
"booklet.actuallyadditions.shapedOreRecipe": "Shaped OreDict Recipe",
"booklet.actuallyadditions.empowererRecipe": "Empowerer Recipe",
"booklet.actuallyadditions.crusherRecipe": "Crusher Recipe",
"booklet.actuallyadditions.furnaceRecipe": "Furnace Recipe",
"booklet.actuallyadditions.reconstructorRecipe": "Atomic Reconstructor Recipe",
"booklet.actuallyadditions.shapeless_recipe": "Shapeless Recipe",
"booklet.actuallyadditions.shaped_recipe": "Shaped Recipe",
"booklet.actuallyadditions.shapeless_ore_recipe": "Shapeless OreDict Recipe",
"booklet.actuallyadditions.shapedore_recipe": "Shaped OreDict Recipe",
"booklet.actuallyadditions.empowerer_recipe": "Empowerer Recipe",
"booklet.actuallyadditions.crusher_recipe": "Crusher Recipe",
"booklet.actuallyadditions.furnace_recipe": "Furnace Recipe",
"booklet.actuallyadditions.reconstructor_recipe": "Atomic Reconstructor Recipe",
"_comment": "Booklet Entries",
"booklet.actuallyadditions.indexEntry.gettingStarted": "Getting Started",
"booklet.actuallyadditions.indexEntry.getting_started": "Getting Started",
"booklet.actuallyadditions.indexEntry.misc": "Miscellaneous",
"booklet.actuallyadditions.indexEntry.crossover": "Mod Crossover",
"booklet.actuallyadditions.indexEntry.functionalNoRF": "Blocks that don't use CF",
@ -847,10 +847,10 @@
"booklet.actuallyadditions.chapter.crystals.text.3": "It should be noted that any recipes listed without information about Lenses <imp>don't use one<r>. <n><i>I thought that was obvious.",
"booklet.actuallyadditions.chapter.crystals.text.5": "When you have crafted a couple of items, you might want to find a way to <imp>automate this<r>. <n>There is a very simple way to do accomplish this: <n>Place the <item>Atomic Reconstructor<r> down facing into a <item>Precision Dropper<r> (to find it, look it up in the <imp>All Items<r> Entry!). <n>Next, place a <item>Ranged Collector<r> in the area that has the converted items set as a whitelist. <n>Now you can just chuck your raw materials into the Dropper to convert them!",
"booklet.actuallyadditions.chapter.crystals.text.6": "<n><n><n><i>Molecular Transformilator",
"booklet.actuallyadditions.chapter.bookTutorial": "Intro to the Manual",
"booklet.actuallyadditions.chapter.bookTutorial.text.1": "The <item>Actually Additions Manual<r>, the book you are looking at right now, contains a variety of <imp>useful information about all of the items<r>. <n>Once you get the hang of it, it is very easy to navigate. Here is a quick rundown: <n><n>While you are in a <item>chapter<r>, like this one, you can use the <imp>white buttons at the bottom<r> to turn the page back or forwards. This can also be done by <imp>using the scroll wheel<r>. <n>Chapters, however, aren't the only thing that this book consists of.",
"booklet.actuallyadditions.chapter.bookTutorial.text.2": "Were you to <imp>go back<r> a level via the <imp>buttom on the top left<r> or via <imp>right-clicking<r>, you would find yourself inside an <item>entry<r>. Entries contain all chapters that are related to <imp>a specific topic<r>. Here, you can also <imp>turn pages<r> and click the items on the page. <n><n>Were you to <imp>go back another level<r> (again, via the button on the top left or right-clicking), you would find yourself on the <item>main page<r> of the manual. <n><n><i>Turn the page now via the button on the bottom right.",
"booklet.actuallyadditions.chapter.bookTutorial.text.3": "On the <item>main page<r>, you can see (and click on!) a list of <imp>all of the entries<r>. <n><n>The <item>bookmarks<r> are placed at the <imp>bottom of the booklet<r>. While you are <imp>in a chapter<r>, you can <imp>bookmark<r> the page you are currently on <imp>for later viewing<r>. <n><n>The booklet also has <imp>a lot of other functions<r>, though. Look around in the GUI to explore them all! <n><n><i>Now press the back button on the top left or right-click to leave this chapter.",
"booklet.actuallyadditions.chapter.book_tutorial": "Intro to the Manual",
"booklet.actuallyadditions.chapter.book_tutorial.text.1": "The <item>Actually Additions Manual<r>, the book you are looking at right now, contains a variety of <imp>useful information about all of the items<r>. <n>Once you get the hang of it, it is very easy to navigate. Here is a quick rundown: <n><n>While you are in a <item>chapter<r>, like this one, you can use the <imp>white buttons at the bottom<r> to turn the page back or forwards. This can also be done by <imp>using the scroll wheel<r>. <n>Chapters, however, aren't the only thing that this book consists of.",
"booklet.actuallyadditions.chapter.book_tutorial.text.2": "Were you to <imp>go back<r> a level via the <imp>buttom on the top left<r> or via <imp>right-clicking<r>, you would find yourself inside an <item>entry<r>. Entries contain all chapters that are related to <imp>a specific topic<r>. Here, you can also <imp>turn pages<r> and click the items on the page. <n><n>Were you to <imp>go back another level<r> (again, via the button on the top left or right-clicking), you would find yourself on the <item>main page<r> of the manual. <n><n><i>Turn the page now via the button on the bottom right.",
"booklet.actuallyadditions.chapter.book_tutorial.text.3": "On the <item>main page<r>, you can see (and click on!) a list of <imp>all of the entries<r>. <n><n>The <item>bookmarks<r> are placed at the <imp>bottom of the booklet<r>. While you are <imp>in a chapter<r>, you can <imp>bookmark<r> the page you are currently on <imp>for later viewing<r>. <n><n>The booklet also has <imp>a lot of other functions<r>, though. Look around in the GUI to explore them all! <n><n><i>Now press the back button on the top left or right-click to leave this chapter.",
"booklet.actuallyadditions.chapter.reconstructorLenses": "Intro to Lenses",
"booklet.actuallyadditions.chapter.reconstructorLenses.text.1": "The <item>Atomic Reconstructor<r>, by default, can only convert some blocks. <n>This can be changed, however, with <item>Lenses<r>. They can be attached to the Reconstructor via <imp>right-clicking<r> with them in hand. To remove them, right-click with an empty hand. <n>They all use a different amount of power and will only activate <imp>once they have it<r>. <n><item>Lenses<r> have lots of different features and uses, as you can see in <imp>this chapter<r>. <n>However, there are also some <imp>other useful recipes<r> too.",
"booklet.actuallyadditions.chapter.additionalRecipes": "Additional Recipes",
@ -908,11 +908,13 @@
"booklet.actuallyadditions.chapter.displayStand.text.2": "The <item>Leaf Blower<r> and <item>Advanced Leaf Blower<r> can be placed onto the display stand, resulting in the grass and leaves around it to be blown away. <n><n><item>Potion Rings<r> can be placed onto the display stand. The normal version will give the specified potion effect to <imp>only one<r> living entity in a small area, while the advanced version will <imp>give a potion effect to all living entities<r> in a <imp>big area<r> while using up a significant amount of <imp>CF<r>.",
"booklet.actuallyadditions.chapter.itemFilter": "Item Filter",
"booklet.actuallyadditions.chapter.itemFilter.text.1": "The <item>Item Filter<r> can be used in <item>Advanced Item Laser Relays<r>, <item>ESDs<r> and <item>Ranged Collectors<r> to <imp>enlargen the size of their whitelist<r>. This can be done by right-clicking with the filter in hand and placing items to be filtered inside of it. The filter can then be placed into any whitelist slot in the desired machine. <n>For more information on this, <imp>hover over the whitelist buttons in the GUIs of whitelistable machines<r>!",
"booklet.actuallyadditions.chapter.videoGuide": "A Video Guide",
"booklet.actuallyadditions.chapter.videoGuide.text.1": "If you want to have a <imp>visual introduction<r> to see what <item>Actually Additions<r> has to offer, you can watch this really awesome video by a friend of mine, <item>Booty Toast<r> (yes, weird name, I know). <n>His video covers most of the main stuff the mod has to offer, however it is <imp>a bit outdated<r> and doesn't cover everything. It's still a <imp>great introduction to the mod<r> though.",
"booklet.actuallyadditions.chapter.videoGuide.button.1": "BootyToast's Video",
"booklet.actuallyadditions.chapter.videoGuide.text.2": "There is also the second option, a <imp>playlist<r> consisting of a <imp>spotlight<r> by <item>Direwolf20<r>. It is a bit more recent than the other video, however, it is <imp>substantially longer<r> and provides a more detailed overview. So you have the choice: The quicker introduction on the left or the longer, more in-depth introduction down below.",
"booklet.actuallyadditions.chapter.videoGuide.button.2": "Direwolf's Playlist",
"booklet.actuallyadditions.chapter.video_guide": "A Video Guide",
"booklet.actuallyadditions.chapter.video_guide.booty.text.1": "If you want to have a <imp>visual introduction<r> to see what <item>Actually Additions<r> has to offer, you can watch this really awesome video by a friend of mine, <item>Booty Toast<r> (yes, weird name, I know).",
"booklet.actuallyadditions.chapter.video_guide.booty.text.2": "<n>His video covers most of the main stuff the mod has to offer, however it is <imp>a bit outdated<r> and doesn't cover everything. It's still a <imp>great introduction to the mod<r> though.",
"booklet.actuallyadditions.chapter.video_guide.booty.button": "BootyToast's Video",
"booklet.actuallyadditions.chapter.video_guide.dire.text.1": "There is also the second option, a <imp>playlist<r> consisting of a <imp>spotlight<r> by <item>Direwolf20<r>. It is a bit more recent than the other video, however, it is <imp>substantially longer<r> and provides a more detailed overview. So you have the choice: The quicker introduction",
"booklet.actuallyadditions.chapter.video_guide.dire.text.2": "on the left or the longer, more in-depth introduction down below.",
"booklet.actuallyadditions.chapter.video_guide.dire.button": "Direwolf's Playlist",
"booklet.actuallyadditions.chapter.shockSuppressor": "Shock Absorber",
"booklet.actuallyadditions.chapter.shockSuppressor.text.1": "The <item>Shock Absorber<r> is a block that, when supplied with <imp>CF<r>, it will protect an area of <imp>up to <range> blocks around it<r> from any type of <imp>Explosion<r>, be it ghasts, TNT or creepers. <n>Every block that is protected will result in a loss of <imp><rf> CF<r>.",
"booklet.actuallyadditions.chapter.shockSuppressor.text.2": "<i>Credit where credit is due: <r><n><n>Or something like that. <n>Anyways, this thing was thought up and suggested to me by <imp>praetoras<r>. Thanks for that brilliant idea! <n><n><i>What's a fourth wall..?",

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B