mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-22 07:13:28 +01:00
More patchouli work
This commit is contained in:
parent
90a923bd08
commit
1207a27dbc
11 changed files with 268 additions and 13 deletions
|
@ -1,6 +1,8 @@
|
||||||
// 1.20.4 2024-03-06T00:00:49.130919 Patchouli Book Provider
|
// 1.20.4 2024-03-14T01:53:18.5540232 Patchouli Book Provider
|
||||||
25f9d206f1f0397918f65634d57f658516f3c952 assets/actuallyadditions/patchouli_books/booklet/en_us/categories/getting_started.json
|
25f9d206f1f0397918f65634d57f658516f3c952 assets/actuallyadditions/patchouli_books/booklet/en_us/categories/getting_started.json
|
||||||
|
7023c70c30600d465a96b315b2b7954eedad337d assets/actuallyadditions/patchouli_books/booklet/en_us/entries/crystals.json
|
||||||
|
cb103625b78fcc79697bdc00459a21cacf0c940a assets/actuallyadditions/patchouli_books/booklet/en_us/entries/engineer_house.json
|
||||||
88df6be8c958d5e89673e9eefcf73315d50bda9f assets/actuallyadditions/patchouli_books/booklet/en_us/entries/guide.json
|
88df6be8c958d5e89673e9eefcf73315d50bda9f assets/actuallyadditions/patchouli_books/booklet/en_us/entries/guide.json
|
||||||
49e2d21f416f97f2e952ceb8e003e8497e926e03 assets/actuallyadditions/patchouli_books/booklet/en_us/entries/intro.json
|
2709d2e5c13efa327c5ee6c18fe10e377d49abe3 assets/actuallyadditions/patchouli_books/booklet/en_us/entries/intro.json
|
||||||
78d1f1a0d393feaf903c84d11ac2749d17779217 assets/actuallyadditions/patchouli_books/booklet/en_us/entries/tutorial.json
|
78d1f1a0d393feaf903c84d11ac2749d17779217 assets/actuallyadditions/patchouli_books/booklet/en_us/entries/tutorial.json
|
||||||
10146f4dd5bab35ef00a724fab1f3762e5f7c2b9 data/actuallyadditions/patchouli_books/booklet/book.json
|
10146f4dd5bab35ef00a724fab1f3762e5f7c2b9 data/actuallyadditions/patchouli_books/booklet/book.json
|
||||||
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
{
|
||||||
|
"category": "actuallyadditions:getting_started",
|
||||||
|
"icon": "actuallyadditions:booklet",
|
||||||
|
"name": "booklet.actuallyadditions.chapter.crystals",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"type": "patchouli:text",
|
||||||
|
"text": "booklet.actuallyadditions.chapter.crystals.text.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:text",
|
||||||
|
"text": "booklet.actuallyadditions.chapter.crystals.text.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:text",
|
||||||
|
"text": "booklet.actuallyadditions.chapter.crystals.text.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:image",
|
||||||
|
"border": false,
|
||||||
|
"images": [
|
||||||
|
"actuallyadditions:textures/gui/booklet/page_atomic_reconstructor.png"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:text",
|
||||||
|
"text": "booklet.actuallyadditions.chapter.crystals.text.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:crafting",
|
||||||
|
"recipe": "actuallyadditions:atomic_reconstructor",
|
||||||
|
"text": "booklet.actuallyadditions.chapter.crystals.text.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:reconstructor",
|
||||||
|
"recipe": "actuallyadditions:laser/crystalize_restonia_crystal_block",
|
||||||
|
"recipe2": "actuallyadditions:laser/crystalize_restonia_crystal",
|
||||||
|
"text": "booklet.actuallyadditions.reconstructor_recipe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:reconstructor",
|
||||||
|
"recipe": "actuallyadditions:laser/crystalize_palis_crystal_block",
|
||||||
|
"recipe2": "actuallyadditions:laser/crystalize_palis_crystal",
|
||||||
|
"text": "booklet.actuallyadditions.reconstructor_recipe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:reconstructor",
|
||||||
|
"recipe": "actuallyadditions:laser/crystalize_diamatine_crystal_block",
|
||||||
|
"recipe2": "actuallyadditions:laser/crystalize_diamatine_crystal",
|
||||||
|
"text": "booklet.actuallyadditions.reconstructor_recipe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:reconstructor",
|
||||||
|
"recipe": "actuallyadditions:laser/crystalize_void_crystal_block",
|
||||||
|
"recipe2": "actuallyadditions:laser/crystalize_void_crystal",
|
||||||
|
"text": "booklet.actuallyadditions.reconstructor_recipe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:reconstructor",
|
||||||
|
"recipe": "actuallyadditions:laser/crystalize_emeradic_crystal_block",
|
||||||
|
"recipe2": "actuallyadditions:laser/crystalize_emeradic_crystal",
|
||||||
|
"text": "booklet.actuallyadditions.reconstructor_recipe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:reconstructor",
|
||||||
|
"recipe": "actuallyadditions:laser/crystalize_enori_crystal_block",
|
||||||
|
"recipe2": "actuallyadditions:laser/crystalize_enori_crystal",
|
||||||
|
"text": "booklet.actuallyadditions.reconstructor_recipe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:crafting",
|
||||||
|
"recipe": "actuallyadditions:decompress/restonia_crystal",
|
||||||
|
"recipe2": "actuallyadditions:compress/restonia_crystal_block"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:crafting",
|
||||||
|
"recipe": "actuallyadditions:decompress/palis_crystal",
|
||||||
|
"recipe2": "actuallyadditions:compress/palis_crystal_block"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:crafting",
|
||||||
|
"recipe": "actuallyadditions:decompress/diamatine_crystal",
|
||||||
|
"recipe2": "actuallyadditions:compress/diamatine_crystal_block"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:crafting",
|
||||||
|
"recipe": "actuallyadditions:decompress/void_crystal",
|
||||||
|
"recipe2": "actuallyadditions:compress/void_crystal_block"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:crafting",
|
||||||
|
"recipe": "actuallyadditions:decompress/emeradic_crystal",
|
||||||
|
"recipe2": "actuallyadditions:compress/emeradic_crystal_block"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:crafting",
|
||||||
|
"recipe": "actuallyadditions:decompress/enori_crystal",
|
||||||
|
"recipe2": "actuallyadditions:compress/enori_crystal_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"category": "actuallyadditions:getting_started",
|
||||||
|
"icon": "actuallyadditions:booklet",
|
||||||
|
"name": "booklet.actuallyadditions.chapter.engineer_house",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"type": "patchouli:text",
|
||||||
|
"text": "booklet.actuallyadditions.chapter.engineer_house.text.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:image",
|
||||||
|
"images": [
|
||||||
|
"actuallyadditions:textures/gui/booklet/page_engineer_house.png"
|
||||||
|
],
|
||||||
|
"text": "booklet.actuallyadditions.chapter.engineer_house.text.2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -14,6 +14,10 @@
|
||||||
{
|
{
|
||||||
"type": "patchouli:text",
|
"type": "patchouli:text",
|
||||||
"text": "booklet.actuallyadditions.chapter.intro.text.3"
|
"text": "booklet.actuallyadditions.chapter.intro.text.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patchouli:text",
|
||||||
|
"text": "booklet.actuallyadditions.chapter.intro.text.4"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package de.ellpeck.actuallyadditions.data.patchouli;
|
package de.ellpeck.actuallyadditions.data.patchouli;
|
||||||
|
|
||||||
|
import de.ellpeck.actuallyadditions.data.patchouli.builder.ReconstructorPageBuilder;
|
||||||
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
||||||
import net.minecraft.data.PackOutput;
|
import net.minecraft.data.PackOutput;
|
||||||
|
@ -7,6 +8,7 @@ import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import xyz.brassgoggledcoders.patchouliprovider.BookBuilder;
|
import xyz.brassgoggledcoders.patchouliprovider.BookBuilder;
|
||||||
import xyz.brassgoggledcoders.patchouliprovider.CategoryBuilder;
|
import xyz.brassgoggledcoders.patchouliprovider.CategoryBuilder;
|
||||||
|
import xyz.brassgoggledcoders.patchouliprovider.EntryBuilder;
|
||||||
import xyz.brassgoggledcoders.patchouliprovider.PatchouliBookProvider;
|
import xyz.brassgoggledcoders.patchouliprovider.PatchouliBookProvider;
|
||||||
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
@ -48,8 +50,9 @@ public class PachouliGenerator extends PatchouliBookProvider {
|
||||||
.addTextPage(prefix("chapter.book_tutorial.text.1")).build()
|
.addTextPage(prefix("chapter.book_tutorial.text.1")).build()
|
||||||
.addTextPage(prefix("chapter.book_tutorial.text.2")).build()
|
.addTextPage(prefix("chapter.book_tutorial.text.2")).build()
|
||||||
.addTextPage(prefix("chapter.book_tutorial.text.3")).build()
|
.addTextPage(prefix("chapter.book_tutorial.text.3")).build()
|
||||||
|
.addCraftingPage(new ResourceLocation(ActuallyAdditions.MODID, "booklet"))
|
||||||
|
.setTitle("").setText("booklet.actuallyadditions.shapeless_recipe").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")
|
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"))
|
.addLinkPage("https://www.youtube.com/watch?v=fhjz0Ew56pM", prefix("chapter.video_guide.booty.button"))
|
||||||
.setText(prefix("chapter.video_guide.booty.text.1")).build()
|
.setText(prefix("chapter.video_guide.booty.text.1")).build()
|
||||||
|
@ -61,7 +64,53 @@ public class PachouliGenerator extends PatchouliBookProvider {
|
||||||
gettingStarted.addEntry("intro", prefix("chapter.intro"), bookStack)
|
gettingStarted.addEntry("intro", prefix("chapter.intro"), bookStack)
|
||||||
.addTextPage(prefix("chapter.intro.text.1")).build()
|
.addTextPage(prefix("chapter.intro.text.1")).build()
|
||||||
.addTextPage(prefix("chapter.intro.text.2")).build()
|
.addTextPage(prefix("chapter.intro.text.2")).build()
|
||||||
.addTextPage(prefix("chapter.intro.text.3")).build();
|
.addTextPage(prefix("chapter.intro.text.3")).build()
|
||||||
|
.addTextPage(prefix("chapter.intro.text.4")).build();
|
||||||
|
|
||||||
|
gettingStarted.addEntry("engineer_house", prefix("chapter.engineer_house"), bookStack)
|
||||||
|
.addTextPage(prefix("chapter.engineer_house.text.1")).build()
|
||||||
|
.addImagePage(new ResourceLocation(ActuallyAdditions.MODID, "textures/gui/booklet/page_engineer_house.png"))
|
||||||
|
.setText("booklet.actuallyadditions.chapter.engineer_house.text.2").build();
|
||||||
|
|
||||||
|
EntryBuilder crystalsBuilder = gettingStarted.addEntry("crystals", prefix("chapter.crystals"), bookStack)
|
||||||
|
.addTextPage(prefix("chapter.crystals.text.1")).build()
|
||||||
|
.addTextPage(prefix("chapter.crystals.text.2")).build()
|
||||||
|
.addTextPage(prefix("chapter.crystals.text.3")).build()
|
||||||
|
.addImagePage(new ResourceLocation(ActuallyAdditions.MODID, "textures/gui/booklet/page_atomic_reconstructor.png")).setBorder(false).build()
|
||||||
|
.addTextPage(prefix("chapter.crystals.text.5")).build()
|
||||||
|
.addCraftingPage(new ResourceLocation(ActuallyAdditions.MODID, "atomic_reconstructor"))
|
||||||
|
.setText(prefix("chapter.crystals.text.6")).build();
|
||||||
|
crystalsBuilder.addPage(new ReconstructorPageBuilder(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_restonia_crystal_block"), crystalsBuilder))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_restonia_crystal"))
|
||||||
|
.setText("booklet.actuallyadditions.reconstructor_recipe").build();
|
||||||
|
crystalsBuilder.addPage(new ReconstructorPageBuilder(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_palis_crystal_block"), crystalsBuilder))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_palis_crystal"))
|
||||||
|
.setText("booklet.actuallyadditions.reconstructor_recipe").build();
|
||||||
|
crystalsBuilder.addPage(new ReconstructorPageBuilder(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_diamatine_crystal_block"), crystalsBuilder))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_diamatine_crystal"))
|
||||||
|
.setText("booklet.actuallyadditions.reconstructor_recipe").build();
|
||||||
|
crystalsBuilder.addPage(new ReconstructorPageBuilder(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_void_crystal_block"), crystalsBuilder))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_void_crystal"))
|
||||||
|
.setText("booklet.actuallyadditions.reconstructor_recipe").build();
|
||||||
|
crystalsBuilder.addPage(new ReconstructorPageBuilder(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_emeradic_crystal_block"), crystalsBuilder))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_emeradic_crystal"))
|
||||||
|
.setText("booklet.actuallyadditions.reconstructor_recipe").build();
|
||||||
|
crystalsBuilder.addPage(new ReconstructorPageBuilder(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_enori_crystal_block"), crystalsBuilder))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "laser/crystalize_enori_crystal"))
|
||||||
|
.setText("booklet.actuallyadditions.reconstructor_recipe").build();
|
||||||
|
crystalsBuilder.addCraftingPage(new ResourceLocation(ActuallyAdditions.MODID, "decompress/restonia_crystal"))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "compress/restonia_crystal_block")).build()
|
||||||
|
.addCraftingPage(new ResourceLocation(ActuallyAdditions.MODID, "decompress/palis_crystal"))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "compress/palis_crystal_block")).build()
|
||||||
|
.addCraftingPage(new ResourceLocation(ActuallyAdditions.MODID, "decompress/diamatine_crystal"))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "compress/diamatine_crystal_block")).build()
|
||||||
|
.addCraftingPage(new ResourceLocation(ActuallyAdditions.MODID, "decompress/void_crystal"))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "compress/void_crystal_block")).build()
|
||||||
|
.addCraftingPage(new ResourceLocation(ActuallyAdditions.MODID, "decompress/emeradic_crystal"))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "compress/emeradic_crystal_block")).build()
|
||||||
|
.addCraftingPage(new ResourceLocation(ActuallyAdditions.MODID, "decompress/enori_crystal"))
|
||||||
|
.setRecipe2(new ResourceLocation(ActuallyAdditions.MODID, "compress/enori_crystal_block")).build();
|
||||||
|
crystalsBuilder.build();
|
||||||
|
|
||||||
//End of Getting Started
|
//End of Getting Started
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package de.ellpeck.actuallyadditions.data.patchouli.builder;
|
||||||
|
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import xyz.brassgoggledcoders.patchouliprovider.EntryBuilder;
|
||||||
|
import xyz.brassgoggledcoders.patchouliprovider.page.RecipePageBuilder;
|
||||||
|
|
||||||
|
public class ReconstructorPageBuilder extends RecipePageBuilder<ReconstructorPageBuilder> {
|
||||||
|
public ReconstructorPageBuilder(ResourceLocation recipe, EntryBuilder entryBuilder) {
|
||||||
|
super("actuallyadditions:reconstructor", recipe, entryBuilder);
|
||||||
|
}
|
||||||
|
}
|
|
@ -50,6 +50,7 @@ import de.ellpeck.actuallyadditions.mod.misc.special.SpecialRenderInit;
|
||||||
import de.ellpeck.actuallyadditions.mod.particle.ActuallyParticles;
|
import de.ellpeck.actuallyadditions.mod.particle.ActuallyParticles;
|
||||||
import de.ellpeck.actuallyadditions.mod.particle.ParticleBeam;
|
import de.ellpeck.actuallyadditions.mod.particle.ParticleBeam;
|
||||||
import de.ellpeck.actuallyadditions.mod.particle.ParticleLaserItem;
|
import de.ellpeck.actuallyadditions.mod.particle.ParticleLaserItem;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.patchouli.PatchouliPages;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.screens.MenuScreens;
|
import net.minecraft.client.gui.screens.MenuScreens;
|
||||||
import net.minecraft.client.multiplayer.ClientPacketListener;
|
import net.minecraft.client.multiplayer.ClientPacketListener;
|
||||||
|
@ -102,6 +103,8 @@ public class ActuallyAdditionsClient {
|
||||||
(stack, level, entity, tintIndex) -> "snail mail".equalsIgnoreCase(stack.getHoverName().getString()) ? 1F : 0F));
|
(stack, level, entity, tintIndex) -> "snail mail".equalsIgnoreCase(stack.getHoverName().getString()) ? 1F : 0F));
|
||||||
|
|
||||||
setupRenderLayers();
|
setupRenderLayers();
|
||||||
|
|
||||||
|
PatchouliPages.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setupRenderLayers() {
|
private static void setupRenderLayers() {
|
||||||
|
|
|
@ -3,6 +3,7 @@ package de.ellpeck.actuallyadditions.mod.crafting;
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI;
|
import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
||||||
import net.minecraft.core.RegistryAccess;
|
import net.minecraft.core.RegistryAccess;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.Container;
|
import net.minecraft.world.Container;
|
||||||
|
@ -47,6 +48,11 @@ public class LaserRecipe implements Recipe<Container> {
|
||||||
return itemIngredient;
|
return itemIngredient;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getToastSymbol() {
|
||||||
|
return new ItemStack(ActuallyBlocks.ATOMIC_RECONSTRUCTOR.get());
|
||||||
|
}
|
||||||
|
|
||||||
//nah
|
//nah
|
||||||
@Override
|
@Override
|
||||||
public boolean matches(Container pInv, Level pLevel) {
|
public boolean matches(Container pInv, Level pLevel) {
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
package de.ellpeck.actuallyadditions.mod.patchouli;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.crafting.ActuallyRecipes;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.crafting.LaserRecipe;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
import vazkii.patchouli.client.book.gui.GuiBook;
|
||||||
|
import vazkii.patchouli.client.book.page.abstr.PageSimpleProcessingRecipe;
|
||||||
|
|
||||||
|
public class PageReconstructor extends PageSimpleProcessingRecipe<LaserRecipe> {
|
||||||
|
|
||||||
|
public PageReconstructor() {
|
||||||
|
super(ActuallyRecipes.Types.LASER.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void drawRecipe(GuiGraphics graphics, LaserRecipe recipe, int recipeX, int recipeY, int mouseX, int mouseY, boolean second) {
|
||||||
|
Level level = Minecraft.getInstance().level;
|
||||||
|
if (level == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderSystem.enableBlend();
|
||||||
|
graphics.blit(AssetUtil.getBookletGuiLocation("gui_booklet_gadgets"), recipeX + 10, recipeY + 2, 80, 146, 68, 48, 256, 256);
|
||||||
|
parent.drawCenteredStringNoShadow(graphics, getTitle(second).getVisualOrderText(), GuiBook.PAGE_WIDTH / 2, recipeY - 10, book.headerColor);
|
||||||
|
|
||||||
|
parent.renderIngredient(graphics, recipeX + 11, recipeY + 15, mouseX, mouseY, recipe.getInput());
|
||||||
|
parent.renderItemStack(graphics, recipeX + 33, recipeY + 15, mouseX, mouseY, recipe.getToastSymbol());
|
||||||
|
parent.renderItemStack(graphics, recipeX + 57, recipeY + 15, mouseX, mouseY, recipe.getResultItem(level.registryAccess()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTextHeight() {
|
||||||
|
return 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldRenderText() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getRecipeHeight() {
|
||||||
|
return 90;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package de.ellpeck.actuallyadditions.mod.patchouli;
|
||||||
|
|
||||||
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import vazkii.patchouli.client.book.ClientBookRegistry;
|
||||||
|
|
||||||
|
public class PatchouliPages {
|
||||||
|
public static void init() {
|
||||||
|
ClientBookRegistry.INSTANCE.pageTypes.put(new ResourceLocation(ActuallyAdditions.MODID, "reconstructor"), PageReconstructor.class);
|
||||||
|
}
|
||||||
|
}
|
|
@ -714,9 +714,10 @@
|
||||||
"booklet.actuallyadditions.trials.empowererAutomation.text.1": "The <item>Empowerer<r> requires a lot of resources to <imp>convert crystals<r>. There should be a pretty easy way to create a system that does this <imp>automatically<r>. Using some <item>Item Laser Relays<r> should provide an easy way to make the right items go onto the right display stands.",
|
"booklet.actuallyadditions.trials.empowererAutomation.text.1": "The <item>Empowerer<r> requires a lot of resources to <imp>convert crystals<r>. There should be a pretty easy way to create a system that does this <imp>automatically<r>. Using some <item>Item Laser Relays<r> should provide an easy way to make the right items go onto the right display stands.",
|
||||||
"_comment": "Booklet Chapters",
|
"_comment": "Booklet Chapters",
|
||||||
"booklet.actuallyadditions.chapter.intro": "A story about ActAdd",
|
"booklet.actuallyadditions.chapter.intro": "A story about ActAdd",
|
||||||
"booklet.actuallyadditions.chapter.intro.text.1": "<i>For too long have the people of Minecraftia toiled under a relentless whip. A whip more hurtful and more injurious than that of any slave-master: inconvenience. Aye, the thousand million inconveniences that make up the grind, that force players to waste hours- nay, days!- chopping wood and farming wheat and other such mundane tasks, just to momentarily escape the remorseless tedium and experience the true joys of Minecraftia, building, caving and adventuring into the beautiful uncharted abundance",
|
"booklet.actuallyadditions.chapter.intro.text.1": "<i>For too long have the people of Minecraftia toiled under a relentless whip. A whip more hurtful and more injurious than that of any slave-master: inconvenience. Aye, the thousand million inconveniences that make up the grind, that force players to waste hours- nay, days!- chopping wood and farming wheat and other such mundane tasks,",
|
||||||
"booklet.actuallyadditions.chapter.intro.text.2": "<i>of the world. Yet no sooner has one immersed oneself in this creative enterprise than the inconveniences return, like millions of furious bees pestering, stinging, swarming all over you until the game ceases to be enjoyable, and you are driven away from it forever. To that end, a certain Ellpeck has created this Actual Addition to the world of Minecraft, that will allow the player to better engage with the core experiences of the game- building and adventuring- by automating and streamlining the monotony that",
|
"booklet.actuallyadditions.chapter.intro.text.2": "<i>just to momentarily escape the remorseless tedium and experience the true joys of Minecraftia, building, caving and adventuring into the beautiful uncharted abundance of the world. Yet no sooner has one immersed oneself in this creative enterprise than the inconveniences return, like millions of furious bees pestering, stinging, swarming all over you until the game ceases to be enjoyable, and you are driven away from it forever.",
|
||||||
"booklet.actuallyadditions.chapter.intro.text.3": "<i>is grinding in Minecraft. Therefore, Ellpeck humbly presents to you this Actually Additions Manual, that shall teach you the ways of this modification and, ultimately, allow you to transcend inconvenience and attain enlightenment. <r><n><n> ~by <imp>Tulkas<r>",
|
"booklet.actuallyadditions.chapter.intro.text.3": "<i>To that end, a certain Ellpeck has created this Actual Addition to the world of Minecraft, that will allow the player to better engage with the core experiences of the game- building and adventuring- by automating and streamlining the monotony that is grinding in Minecraft. Therefore, Ellpeck humbly presents to you this Actually Additions Manual, that shall teach you the ways of this modification and, ultimately,",
|
||||||
|
"booklet.actuallyadditions.chapter.intro.text.4": "<i>allow you to transcend inconvenience and attain enlightenment. <r><n><n> ~by <imp>Tulkas<r>",
|
||||||
"booklet.actuallyadditions.chapter.craftingIngs": "Crafting Ingredients",
|
"booklet.actuallyadditions.chapter.craftingIngs": "Crafting Ingredients",
|
||||||
"booklet.actuallyadditions.chapter.craftingIngs.text.1": "<imp>Actually Additions<r> has lots of items that use certain <imp>basic crafting items<r> to be crafted. This chapter has all of these basic items <imp>grouped up<r> so that you can see all of them at once.",
|
"booklet.actuallyadditions.chapter.craftingIngs.text.1": "<imp>Actually Additions<r> has lots of items that use certain <imp>basic crafting items<r> to be crafted. This chapter has all of these basic items <imp>grouped up<r> so that you can see all of them at once.",
|
||||||
"booklet.actuallyadditions.chapter.quartz": "Black Quartz",
|
"booklet.actuallyadditions.chapter.quartz": "Black Quartz",
|
||||||
|
@ -846,9 +847,9 @@
|
||||||
"booklet.actuallyadditions.chapter.blackLotus.text.1": "Think of this: <n>You need to craft <imp>black wool<r>, <imp>black clay<r> or anything else that <imp>needs black dye<r> but you are just guilty about killing so many <imp>innocent squids<r>? <n>Well, the <item>Black Lotus<r> is exactly the thing you need! <n>Just look around <imp>in the wild<r> a bit, and you will find one, then being able to craft some <item>Black Dye<r> that can be used <imp>instead of Ink Sacs<r> so that you don't need to kill poor squids and L any longer.",
|
"booklet.actuallyadditions.chapter.blackLotus.text.1": "Think of this: <n>You need to craft <imp>black wool<r>, <imp>black clay<r> or anything else that <imp>needs black dye<r> but you are just guilty about killing so many <imp>innocent squids<r>? <n>Well, the <item>Black Lotus<r> is exactly the thing you need! <n>Just look around <imp>in the wild<r> a bit, and you will find one, then being able to craft some <item>Black Dye<r> that can be used <imp>instead of Ink Sacs<r> so that you don't need to kill poor squids and L any longer.",
|
||||||
"booklet.actuallyadditions.chapter.blackLotus.text.2": "<i>Do the lotus pose",
|
"booklet.actuallyadditions.chapter.blackLotus.text.2": "<i>Do the lotus pose",
|
||||||
"booklet.actuallyadditions.chapter.crystals": "Crystals and Reconstructor",
|
"booklet.actuallyadditions.chapter.crystals": "Crystals and Reconstructor",
|
||||||
"booklet.actuallyadditions.chapter.crystals.text.1": "The <item>Atomic Reconstructor<r> is used to craft <item>Crystals<r>, which are the main crafting ingredient in most items from <imp>Actually Additions<r>. <n>Upon being supplied with power, it shoots out a Laser. <tifisgrin>When the Laser hits a block<r>, it will convert all surrounding items and blocks, provided they can be converted. <n>When shooting a laser, it uses <imp><rf> CF<r>, but additional rates vary depending on the conversion.",
|
"booklet.actuallyadditions.chapter.crystals.text.1": "The <item>Atomic Reconstructor<r> is used to craft <item>Crystals<r>, which are the main crafting ingredient in most items from <imp>Actually Additions<r>. <n>Upon being supplied with power, it shoots out a Laser. <tifisgrin>When the Laser hits a block<r>, it will convert all surrounding items and blocks, provided they can be converted.",
|
||||||
"booklet.actuallyadditions.chapter.crystals.text.2": "There are various <item>Lenses<r> that can be attached to the Reconstructor that don't all follow the default behavior of the Reconstructor and are able to do some neat things. <n>See the <imp>Reconstruction section<r> in the booklet <imp>for more information<r>. <n><n>When right-clicking the Reconstructor with a <item>Redstone Torch<r> in hand, it will change between a mode where it <imp>gets deactivated by Redstone<r> and a mode where it <imp>responds to pulses<r>.",
|
"booklet.actuallyadditions.chapter.crystals.text.2": "When shooting a laser, it uses <imp>1000 CF<r>, but additional rates vary depending on the conversion. <n>There are various <item>Lenses<r> that can be attached to the Reconstructor that don't all follow the default behavior of the Reconstructor and are able to do some neat things. <n>See the <imp>Reconstruction section<r> in the booklet <imp>for more information<r>.",
|
||||||
"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.3": "When right-clicking the Reconstructor with a <item>Redstone Torch<r> in hand, it will change between a mode where it <imp>gets deactivated by Redstone<r> and a mode where it <imp>responds to pulses<r>. 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.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.crystals.text.6": "<n><n><n><i>Molecular Transformilator",
|
||||||
"booklet.actuallyadditions.chapter.book_tutorial": "Intro to the Manual",
|
"booklet.actuallyadditions.chapter.book_tutorial": "Intro to the Manual",
|
||||||
|
@ -969,9 +970,9 @@
|
||||||
"booklet.actuallyadditions.chapter.website": "The Author's Website",
|
"booklet.actuallyadditions.chapter.website": "The Author's Website",
|
||||||
"booklet.actuallyadditions.chapter.website.text.1": "On the topic of self-advertisement, if you're interested in <imp>any of the other stuff<r> I, <item>Ellpeck<r>, the author of this mod, do, you can go check out my <imp>website<r> by clicking the button below. <n>On there, you will find links to all of the social medias I use, an FAQ, and information about Minecraft Mods and other stuff I make!",
|
"booklet.actuallyadditions.chapter.website.text.1": "On the topic of self-advertisement, if you're interested in <imp>any of the other stuff<r> I, <item>Ellpeck<r>, the author of this mod, do, you can go check out my <imp>website<r> by clicking the button below. <n>On there, you will find links to all of the social medias I use, an FAQ, and information about Minecraft Mods and other stuff I make!",
|
||||||
"booklet.actuallyadditions.chapter.website.button.1": "View the Website",
|
"booklet.actuallyadditions.chapter.website.button.1": "View the Website",
|
||||||
"booklet.actuallyadditions.chapter.engineerHouse": "A visit to the Engineers",
|
"booklet.actuallyadditions.chapter.engineer_house": "A visit to the Engineers",
|
||||||
"booklet.actuallyadditions.chapter.engineerHouse.text.1": "If you want to know how to start, you can check out what the <imp>Engineers<r> are up to. <n>They are two friendly <imp>villagers<r> that sell you various goods: One is the <item>Crystallizer<r>, who will exchange <imp>Emeralds and Crystals<r> with you, and the <item>Engineer<r> will trade <imp>various machines<r> with you! <n>On the next page, you can see the <imp>house<r> they live in - which is also worth checking out! But be careful, the <imp>machines inside the house<r> are a little more <imp>fragile<r>, meaning they will shatter once you try to break them.",
|
"booklet.actuallyadditions.chapter.engineer_house.text.1": "If you want to know how to start, you can check out what the <imp>Engineers<r> are up to. <n>They are two friendly <imp>villagers<r> that sell you various goods: One is the <item>Crystallizer<r>, who will exchange <imp>Emeralds and Crystals<r> with you, and the <item>Engineer<r> will trade <imp>various machines<r> with you! <n>On the next page, you can see the <imp>house<r> they live in - which is also worth checking out! But be careful, the <imp>machines inside the house<r> are a little more <imp>fragile<r>, meaning they will shatter once you try to break them.",
|
||||||
"booklet.actuallyadditions.chapter.engineerHouse.text.2": "<i> Machines Primus",
|
"booklet.actuallyadditions.chapter.engineer_house.text.2": "<i> Machines Primus",
|
||||||
"booklet.actuallyadditions.chapter.batteryBox": "Battery Box",
|
"booklet.actuallyadditions.chapter.batteryBox": "Battery Box",
|
||||||
"booklet.actuallyadditions.chapter.batteryBox.text.1": "The <item>Battery Box<r> is a great way to <imp>store your power<r>. However, for it to be able to <imp>use power<r>, you have to <imp>right-click<r> a <item>Battery<r> onto it. It will then be able to store energy on the battery itself. <n><n>If you set the battery to <imp>discharge mode<r> via <imp>sneak-right-clicking it<r> or by applying a <imp>redstone pulse<r> to the <item>Battery Box<r>, it will try to spread the power it receives equally to <imp>up to 15 adjacent<r> <item>Battery Boxes<r>.",
|
"booklet.actuallyadditions.chapter.batteryBox.text.1": "The <item>Battery Box<r> is a great way to <imp>store your power<r>. However, for it to be able to <imp>use power<r>, you have to <imp>right-click<r> a <item>Battery<r> onto it. It will then be able to store energy on the battery itself. <n><n>If you set the battery to <imp>discharge mode<r> via <imp>sneak-right-clicking it<r> or by applying a <imp>redstone pulse<r> to the <item>Battery Box<r>, it will try to spread the power it receives equally to <imp>up to 15 adjacent<r> <item>Battery Boxes<r>.",
|
||||||
"booklet.actuallyadditions.chapter.laserUpgradeInvisibility": "Modifier: Invisibility",
|
"booklet.actuallyadditions.chapter.laserUpgradeInvisibility": "Modifier: Invisibility",
|
||||||
|
|
Loading…
Reference in a new issue