mirror of
https://github.com/Ellpeck/NaturesAura.git
synced 2024-11-26 05:08:34 +01:00
IT RUNS
This commit is contained in:
parent
65cce7fae5
commit
8fd1b0333e
315 changed files with 435 additions and 452 deletions
|
@ -108,9 +108,8 @@ dependencies {
|
||||||
/* compileOnly fg.deobf("mezz.jei:jei-1.16.5:7.6.1.75:api")
|
/* compileOnly fg.deobf("mezz.jei:jei-1.16.5:7.6.1.75:api")
|
||||||
runtimeOnly fg.deobf("mezz.jei:jei-1.16.5:7.6.1.75")*/
|
runtimeOnly fg.deobf("mezz.jei:jei-1.16.5:7.6.1.75")*/
|
||||||
|
|
||||||
// TODO Patchouli
|
compileOnly fg.deobf("vazkii.patchouli:Patchouli:1.18.1-61:api")
|
||||||
/* compileOnly fg.deobf("vazkii.patchouli:Patchouli:1.16.4-50:api")
|
runtimeOnly fg.deobf("vazkii.patchouli:Patchouli:1.18.1-61")
|
||||||
runtimeOnly fg.deobf("vazkii.patchouli:Patchouli:1.16.4-50")*/
|
|
||||||
|
|
||||||
// TODO Curios
|
// TODO Curios
|
||||||
/* runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.16.5-4.0.5.0")
|
/* runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.16.5-4.0.5.0")
|
||||||
|
|
|
@ -151,7 +151,7 @@ public class BlockDimensionRail extends BaseRailBlock implements IModItem, ICust
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
builder.add(SHAPE);
|
builder.add(SHAPE, WATERLOGGED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -10,7 +10,6 @@ import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
import net.minecraft.world.level.BlockGetter;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.block.state.StateDefinition;
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||||
|
@ -81,7 +80,7 @@ public class BlockFurnaceHeater extends BlockContainerImpl implements ICustomBlo
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VoxelShape getShape(BlockState state, BlockGetter levelIn, BlockPos pos, CollisionContext context) {
|
public VoxelShape getShape(BlockState state, BlockGetter levelIn, BlockPos pos, CollisionContext context) {
|
||||||
return SHAPES[state.getValue(FACING).ordinal()];
|
return SHAPES[state.getValue(FACING).get3DDataValue()];
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -50,16 +50,16 @@ public class BlockGoldPowder extends BlockImpl implements IColorProvidingBlock,
|
||||||
var w = state.getValue(WEST) != RedstoneSide.NONE;
|
var w = state.getValue(WEST) != RedstoneSide.NONE;
|
||||||
|
|
||||||
if (n || s && !n && !e && !w) {
|
if (n || s && !n && !e && !w) {
|
||||||
i |= 1 << Direction.NORTH.ordinal();
|
i |= 1 << Direction.NORTH.get2DDataValue();
|
||||||
}
|
}
|
||||||
if (e || w && !n && !e && !s) {
|
if (e || w && !n && !e && !s) {
|
||||||
i |= 1 << Direction.EAST.ordinal();
|
i |= 1 << Direction.EAST.get2DDataValue();
|
||||||
}
|
}
|
||||||
if (s || n && !e && !s && !w) {
|
if (s || n && !e && !s && !w) {
|
||||||
i |= 1 << Direction.SOUTH.ordinal();
|
i |= 1 << Direction.SOUTH.get2DDataValue();
|
||||||
}
|
}
|
||||||
if (w || e && !n && !s && !w) {
|
if (w || e && !n && !s && !w) {
|
||||||
i |= 1 << Direction.WEST.ordinal();
|
i |= 1 << Direction.WEST.get2DDataValue();
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
|
// TODO get the 1-pixel border around the ender overlay back
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public class RenderEnderCrate implements BlockEntityRenderer<BlockEntityEnderCrate> {
|
public class RenderEnderCrate implements BlockEntityRenderer<BlockEntityEnderCrate> {
|
||||||
|
|
||||||
|
|
|
@ -1,36 +1,57 @@
|
||||||
package de.ellpeck.naturesaura.compat.patchouli;
|
package de.ellpeck.naturesaura.compat.patchouli;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
|
import de.ellpeck.naturesaura.ModConfig;
|
||||||
import de.ellpeck.naturesaura.NaturesAura;
|
import de.ellpeck.naturesaura.NaturesAura;
|
||||||
|
import de.ellpeck.naturesaura.api.multiblock.Matcher;
|
||||||
import de.ellpeck.naturesaura.compat.ICompat;
|
import de.ellpeck.naturesaura.compat.ICompat;
|
||||||
import de.ellpeck.naturesaura.data.ItemTagProvider;
|
import de.ellpeck.naturesaura.data.ItemTagProvider;
|
||||||
|
import de.ellpeck.naturesaura.events.ClientEvents;
|
||||||
|
import de.ellpeck.naturesaura.renderers.SupporterFancyHandler;
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
|
import net.minecraft.client.renderer.GameRenderer;
|
||||||
|
import net.minecraft.network.chat.Style;
|
||||||
|
import net.minecraft.network.chat.TextComponent;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.world.item.crafting.Ingredient;
|
||||||
import net.minecraft.world.item.crafting.Recipe;
|
import net.minecraft.world.item.crafting.Recipe;
|
||||||
import net.minecraft.world.item.crafting.RecipeManager;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||||
|
import vazkii.patchouli.api.BookDrawScreenEvent;
|
||||||
|
import vazkii.patchouli.api.IMultiblock;
|
||||||
|
import vazkii.patchouli.api.IVariable;
|
||||||
|
import vazkii.patchouli.api.PatchouliAPI;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.Month;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
// TODO Patchouli
|
|
||||||
public class PatchouliCompat implements ICompat {
|
public class PatchouliCompat implements ICompat {
|
||||||
|
|
||||||
private static final ResourceLocation BOOK = new ResourceLocation(NaturesAura.MOD_ID, "book");
|
private static final ResourceLocation BOOK = new ResourceLocation(NaturesAura.MOD_ID, "book");
|
||||||
/*
|
|
||||||
private static final Map<ResourceLocation, IMultiblock> MULTIBLOCKS = new HashMap<>();
|
private static final Map<ResourceLocation, IMultiblock> MULTIBLOCKS = new HashMap<>();
|
||||||
*/
|
|
||||||
|
|
||||||
public static void addPatchouliMultiblock(ResourceLocation name, String[][] pattern, Object... rawMatchers) {
|
public static void addPatchouliMultiblock(ResourceLocation name, String[][] pattern, Object... rawMatchers) {
|
||||||
/* for (int i = 1; i < rawMatchers.length; i += 2) {
|
for (var i = 1; i < rawMatchers.length; i += 2) {
|
||||||
if (rawMatchers[i] instanceof Matcher) {
|
if (rawMatchers[i] instanceof Matcher matcher) {
|
||||||
Matcher matcher = (Matcher) rawMatchers[i];
|
var check = matcher.check();
|
||||||
Matcher.ICheck check = matcher.getCheck();
|
|
||||||
if (check == null)
|
if (check == null)
|
||||||
rawMatchers[i] = PatchouliAPI.get().anyMatcher();
|
rawMatchers[i] = PatchouliAPI.get().anyMatcher();
|
||||||
else
|
else
|
||||||
rawMatchers[i] = PatchouliAPI.get().predicateMatcher(matcher.getDefaultState(),
|
rawMatchers[i] = PatchouliAPI.get().predicateMatcher(matcher.defaultState(),
|
||||||
state -> check.matches(null, null, null, null, state, (char) 0));
|
state -> check.matches(null, null, null, null, state, (char) 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MULTIBLOCKS.put(name, PatchouliAPI.get().makeMultiblock(pattern, rawMatchers));*/
|
MULTIBLOCKS.put(name, PatchouliAPI.get().makeMultiblock(pattern, rawMatchers));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
@ -41,20 +62,20 @@ public class PatchouliCompat implements ICompat {
|
||||||
return (T) manager.byKey(pre).orElse(null);
|
return (T) manager.byKey(pre).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* public static IVariable ingredientVariable(Ingredient ingredient) {
|
public static IVariable ingredientVariable(Ingredient ingredient) {
|
||||||
return IVariable.wrapList(Arrays.stream(ingredient.getMatchingStacks())
|
return IVariable.wrapList(Arrays.stream(ingredient.getItems())
|
||||||
.map(IVariable::from).collect(Collectors.toList()));
|
.map(IVariable::from).collect(Collectors.toList()));
|
||||||
}*/
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setup(FMLCommonSetupEvent event) {
|
public void setup(FMLCommonSetupEvent event) {
|
||||||
/* event.enqueueWork(() -> {
|
event.enqueueWork(() -> {
|
||||||
for (Map.Entry<ResourceLocation, IMultiblock> entry : MULTIBLOCKS.entrySet())
|
for (var entry : MULTIBLOCKS.entrySet())
|
||||||
PatchouliAPI.get().registerMultiblock(entry.getKey(), entry.getValue());
|
PatchouliAPI.get().registerMultiblock(entry.getKey(), entry.getValue());
|
||||||
|
|
||||||
PatchouliAPI.get().setConfigFlag(NaturesAura.MOD_ID + ":rf_converter", ModConfig.instance.rfConverter.get());
|
PatchouliAPI.get().setConfigFlag(NaturesAura.MOD_ID + ":rf_converter", ModConfig.instance.rfConverter.get());
|
||||||
PatchouliAPI.get().setConfigFlag(NaturesAura.MOD_ID + ":chunk_loader", ModConfig.instance.chunkLoader.get());
|
PatchouliAPI.get().setConfigFlag(NaturesAura.MOD_ID + ":chunk_loader", ModConfig.instance.chunkLoader.get());
|
||||||
});*/
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -67,66 +88,66 @@ public class PatchouliCompat implements ICompat {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* @SubscribeEvent
|
@SubscribeEvent
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public void onBookDraw(BookDrawScreenEvent event) {
|
public void onBookDraw(BookDrawScreenEvent event) {
|
||||||
if (event.book == null || !event.book.equals(BOOK))
|
var book = event.getBook();
|
||||||
|
var gui = event.getScreen();
|
||||||
|
if (book == null || !book.equals(BOOK))
|
||||||
return;
|
return;
|
||||||
LocalDateTime now = LocalDateTime.now();
|
var now = LocalDateTime.now();
|
||||||
if (now.getMonth() == Month.MAY && now.getDayOfMonth() == 21) {
|
if (now.getMonth() == Month.MAY && now.getDayOfMonth() == 21) {
|
||||||
int x = event.gui.width / 2 + 272 / 2 - 16;
|
var x = gui.width / 2 + 272 / 2 - 16;
|
||||||
int y = event.gui.height / 2 - 180 / 2 - 26;
|
var y = gui.height / 2 - 180 / 2 - 26;
|
||||||
|
|
||||||
RenderHelper.disableStandardItemLighting();
|
RenderSystem.setShader(GameRenderer::getPositionTexShader);
|
||||||
GlStateManager.color4f(1, 1, 1, 1);
|
RenderSystem.setShaderTexture(0, ClientEvents.BOOK_GUI);
|
||||||
event.gui.getMinecraft().getTextureManager().bindTexture(ClientEvents.BOOK_GUI);
|
Screen.blit(event.getPoseStack(), x, y, 469, 0, 43, 42, 512, 256);
|
||||||
AbstractGui.blit(event.matrixStack, x, y, 469, 0, 43, 42, 512, 256);
|
|
||||||
|
|
||||||
if (event.mouseX >= x && event.mouseY >= y && event.mouseX < x + 43 && event.mouseY < y + 42)
|
if (event.getMouseX() >= x && event.getMouseY() >= y && event.getMouseX() < x + 43 && event.getMouseY() < y + 42)
|
||||||
GuiUtils.drawHoveringText(event.matrixStack,
|
gui.renderComponentTooltip(event.getPoseStack(),
|
||||||
Collections.singletonList(new StringTextComponent("It's the author Ellpeck's birthday!").setStyle(Style.EMPTY.setFormatting(TextFormatting.GOLD))),
|
Collections.singletonList(new TextComponent("It's the author Ellpeck's birthday!").setStyle(Style.EMPTY.applyFormat(ChatFormatting.GOLD))),
|
||||||
event.mouseX, event.mouseY, event.gui.width, event.gui.height, 0, event.gui.getMinecraft().fontRenderer);
|
event.getMouseX(), event.getMouseY(), gui.getMinecraft().font);
|
||||||
} else if (now.getMonth() == Month.JUNE) {
|
} else if (now.getMonth() == Month.JUNE) {
|
||||||
int x = event.gui.width / 2 + 272 / 2;
|
var x = gui.width / 2 + 272 / 2;
|
||||||
int y = event.gui.height / 2 - 180 / 2 + 16;
|
var y = gui.height / 2 - 180 / 2 + 16;
|
||||||
|
|
||||||
RenderHelper.disableStandardItemLighting();
|
RenderSystem.setShader(GameRenderer::getPositionTexShader);
|
||||||
GlStateManager.color4f(1, 1, 1, 1);
|
RenderSystem.setShaderTexture(0, ClientEvents.BOOK_GUI);
|
||||||
event.gui.getMinecraft().getTextureManager().bindTexture(ClientEvents.BOOK_GUI);
|
Screen.blit(event.getPoseStack(), x, y, 424, 0, 45, 26, 512, 256);
|
||||||
AbstractGui.blit(event.matrixStack, x, y, 424, 0, 45, 26, 512, 256);
|
|
||||||
|
|
||||||
if (event.mouseX >= x && event.mouseY >= y && event.mouseX < x + 45 && event.mouseY < y + 26)
|
if (event.getMouseX() >= x && event.getMouseY() >= y && event.getMouseX() < x + 45 && event.getMouseY() < y + 26)
|
||||||
GuiUtils.drawHoveringText(event.matrixStack,
|
gui.renderComponentTooltip(event.getPoseStack(),
|
||||||
Collections.singletonList(new StringTextComponent("§6Happy §4P§6r§ei§2d§9e§5!")),
|
Collections.singletonList(new TextComponent("§6Happy §4P§6r§ei§2d§9e§5!")),
|
||||||
event.mouseX, event.mouseY, event.gui.width, event.gui.height, 0, event.gui.getMinecraft().fontRenderer);
|
event.getMouseX(), event.getMouseY(), gui.getMinecraft().font);
|
||||||
}
|
}
|
||||||
|
|
||||||
String name = event.gui.getMinecraft().player.getName().getString();
|
var name = gui.getMinecraft().player.getName().getString();
|
||||||
FancyInfo info = SupporterFancyHandler.FANCY_INFOS.get(name);
|
var info = SupporterFancyHandler.FANCY_INFOS.get(name);
|
||||||
if (info != null) {
|
if (info != null) {
|
||||||
int x = event.gui.width / 2 - 272 / 2 + 20;
|
var x = gui.width / 2 - 272 / 2 + 20;
|
||||||
int y = event.gui.height / 2 + 180 / 2;
|
var y = gui.height / 2 + 180 / 2;
|
||||||
|
|
||||||
RenderHelper.disableStandardItemLighting();
|
RenderSystem.setShader(GameRenderer::getPositionTexShader);
|
||||||
RenderSystem.color4f(1, 1, 1, 1);
|
RenderSystem.setShaderTexture(0, ClientEvents.BOOK_GUI);
|
||||||
event.gui.getMinecraft().getTextureManager().bindTexture(ClientEvents.BOOK_GUI);
|
|
||||||
|
|
||||||
AbstractGui.blit(event.matrixStack, x, y, 496, 44, 16, 18, 512, 256);
|
Screen.blit(event.getPoseStack(), x, y, 496, 44, 16, 18, 512, 256);
|
||||||
if (info.tier == 1) {
|
if (info.tier() == 1) {
|
||||||
AbstractGui.blit(event.matrixStack, x, y, 496 - 16, 44, 16, 18, 512, 256);
|
Screen.blit(event.getPoseStack(), x, y, 496 - 16, 44, 16, 18, 512, 256);
|
||||||
} else {
|
} else {
|
||||||
float r = ((info.color >> 16) & 255) / 255F;
|
var r = ((info.color() >> 16) & 255) / 255F;
|
||||||
float g = ((info.color >> 8) & 255) / 255F;
|
var g = ((info.color() >> 8) & 255) / 255F;
|
||||||
float b = (info.color & 255) / 255F;
|
var b = (info.color() & 255) / 255F;
|
||||||
RenderSystem.color3f(r, g, b);
|
// TODO apply leaf color?
|
||||||
AbstractGui.blit(event.matrixStack, x, y, 496 - 32, 44, 16, 18, 512, 256);
|
//RenderSystem.color3f(r, g, b);
|
||||||
|
Screen.blit(event.getPoseStack(), x, y, 496 - 32, 44, 16, 18, 512, 256);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.mouseX >= x && event.mouseY >= y && event.mouseX < x + 16 && event.mouseY < y + 18)
|
if (event.getMouseX() >= x && event.getMouseY() >= y && event.getMouseX() < x + 16 && event.getMouseY() < y + 18)
|
||||||
GuiUtils.drawHoveringText(event.matrixStack,
|
gui.renderComponentTooltip(event.getPoseStack(),
|
||||||
Collections.singletonList(new StringTextComponent("Thanks for your support, " + name + "!").setStyle(Style.EMPTY.setFormatting(TextFormatting.YELLOW))),
|
Collections.singletonList(new TextComponent("Thanks for your support, " + name + "!").setStyle(Style.EMPTY.applyFormat(ChatFormatting.YELLOW))),
|
||||||
event.mouseX, event.mouseY, event.gui.width, event.gui.height, 0, event.gui.getMinecraft().fontRenderer);
|
event.getMouseX(), event.getMouseY(), gui.getMinecraft().font);
|
||||||
|
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
/*
|
|
||||||
package de.ellpeck.naturesaura.compat.patchouli;
|
package de.ellpeck.naturesaura.compat.patchouli;
|
||||||
|
|
||||||
import de.ellpeck.naturesaura.recipes.AltarRecipe;
|
import de.ellpeck.naturesaura.recipes.AltarRecipe;
|
||||||
import net.minecraft.item.crafting.Ingredient;
|
import net.minecraft.world.item.crafting.Ingredient;
|
||||||
import vazkii.patchouli.api.IComponentProcessor;
|
import vazkii.patchouli.api.IComponentProcessor;
|
||||||
import vazkii.patchouli.api.IVariable;
|
import vazkii.patchouli.api.IVariable;
|
||||||
import vazkii.patchouli.api.IVariableProvider;
|
import vazkii.patchouli.api.IVariableProvider;
|
||||||
|
@ -20,26 +19,14 @@ public class ProcessorAltar implements IComponentProcessor {
|
||||||
public IVariable process(String key) {
|
public IVariable process(String key) {
|
||||||
if (this.recipe == null)
|
if (this.recipe == null)
|
||||||
return null;
|
return null;
|
||||||
switch (key) {
|
return switch (key) {
|
||||||
case "input":
|
case "input" -> PatchouliCompat.ingredientVariable(this.recipe.input);
|
||||||
return PatchouliCompat.ingredientVariable(this.recipe.input);
|
case "output" -> IVariable.from(this.recipe.output);
|
||||||
case "output":
|
case "catalyst" -> this.recipe.catalyst != Ingredient.EMPTY ? PatchouliCompat.ingredientVariable(this.recipe.catalyst) : null;
|
||||||
return IVariable.from(this.recipe.output);
|
case "type" -> this.recipe.requiredType != null ? IVariable.from(this.recipe.getDimensionBottle()) : null;
|
||||||
case "catalyst":
|
case "name" -> IVariable.wrap(this.recipe.output.getDisplayName().getString());
|
||||||
if (this.recipe.catalyst != Ingredient.EMPTY)
|
default -> null;
|
||||||
return PatchouliCompat.ingredientVariable(this.recipe.catalyst);
|
};
|
||||||
else
|
|
||||||
return null;
|
|
||||||
case "type":
|
|
||||||
if (this.recipe.requiredType != null)
|
|
||||||
return IVariable.from(this.recipe.getDimensionBottle());
|
|
||||||
else
|
|
||||||
return null;
|
|
||||||
case "name":
|
|
||||||
return IVariable.wrap(this.recipe.output.getDisplayName().getString());
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -47,4 +34,3 @@ public class ProcessorAltar implements IComponentProcessor {
|
||||||
return group.isEmpty() || group.equals(this.recipe.catalyst == Ingredient.EMPTY ? "altar" : "catalyst");
|
return group.isEmpty() || group.equals(this.recipe.catalyst == Ingredient.EMPTY ? "altar" : "catalyst");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
/*
|
|
||||||
package de.ellpeck.naturesaura.compat.patchouli;
|
package de.ellpeck.naturesaura.compat.patchouli;
|
||||||
|
|
||||||
import de.ellpeck.naturesaura.recipes.AnimalSpawnerRecipe;
|
import de.ellpeck.naturesaura.recipes.AnimalSpawnerRecipe;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.item.SpawnEggItem;
|
import net.minecraftforge.common.ForgeSpawnEggItem;
|
||||||
import vazkii.patchouli.api.IComponentProcessor;
|
import vazkii.patchouli.api.IComponentProcessor;
|
||||||
import vazkii.patchouli.api.IVariable;
|
import vazkii.patchouli.api.IVariable;
|
||||||
import vazkii.patchouli.api.IVariableProvider;
|
import vazkii.patchouli.api.IVariableProvider;
|
||||||
|
@ -22,23 +21,15 @@ public class ProcessorAnimalSpawner implements IComponentProcessor {
|
||||||
if (this.recipe == null)
|
if (this.recipe == null)
|
||||||
return null;
|
return null;
|
||||||
if (key.startsWith("input")) {
|
if (key.startsWith("input")) {
|
||||||
int id = Integer.parseInt(key.substring(5)) - 1;
|
var id = Integer.parseInt(key.substring(5)) - 1;
|
||||||
if (this.recipe.ingredients.length > id)
|
return this.recipe.ingredients.length > id ? PatchouliCompat.ingredientVariable(this.recipe.ingredients[id]) : null;
|
||||||
return PatchouliCompat.ingredientVariable(this.recipe.ingredients[id]);
|
|
||||||
else
|
|
||||||
return null;
|
|
||||||
} else {
|
} else {
|
||||||
switch (key) {
|
return switch (key) {
|
||||||
case "name":
|
case "name" -> IVariable.wrap(this.recipe.entity.getDescription().getString());
|
||||||
return IVariable.wrap(this.recipe.entity.getName().getString());
|
case "entity" -> IVariable.wrap(this.recipe.entity.getRegistryName().toString());
|
||||||
case "entity":
|
case "egg" -> IVariable.from(new ItemStack(ForgeSpawnEggItem.fromEntityType(this.recipe.entity)));
|
||||||
return IVariable.wrap(this.recipe.entity.getRegistryName().toString());
|
default -> null;
|
||||||
case "egg":
|
};
|
||||||
ItemStack egg = new ItemStack(SpawnEggItem.getEgg(this.recipe.entity));
|
|
||||||
return IVariable.from(egg);
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,4 +38,3 @@ public class ProcessorAnimalSpawner implements IComponentProcessor {
|
||||||
return !"seekrit".equals(group);
|
return !"seekrit".equals(group);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/*
|
|
||||||
package de.ellpeck.naturesaura.compat.patchouli;
|
package de.ellpeck.naturesaura.compat.patchouli;
|
||||||
|
|
||||||
import de.ellpeck.naturesaura.recipes.OfferingRecipe;
|
import de.ellpeck.naturesaura.recipes.OfferingRecipe;
|
||||||
|
@ -19,18 +18,12 @@ public class ProcessorOffering implements IComponentProcessor {
|
||||||
public IVariable process(String key) {
|
public IVariable process(String key) {
|
||||||
if (this.recipe == null)
|
if (this.recipe == null)
|
||||||
return null;
|
return null;
|
||||||
switch (key) {
|
return switch (key) {
|
||||||
case "input":
|
case "input" -> PatchouliCompat.ingredientVariable(this.recipe.input);
|
||||||
return PatchouliCompat.ingredientVariable(this.recipe.input);
|
case "output" -> IVariable.from(this.recipe.output);
|
||||||
case "output":
|
case "start" -> PatchouliCompat.ingredientVariable(this.recipe.startItem);
|
||||||
return IVariable.from(this.recipe.output);
|
case "name" -> IVariable.wrap(this.recipe.output.getDisplayName().getString());
|
||||||
case "start":
|
default -> null;
|
||||||
return PatchouliCompat.ingredientVariable(this.recipe.startItem);
|
};
|
||||||
case "name":
|
|
||||||
return IVariable.wrap(this.recipe.output.getDisplayName().getString());
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/*
|
|
||||||
package de.ellpeck.naturesaura.compat.patchouli;
|
package de.ellpeck.naturesaura.compat.patchouli;
|
||||||
|
|
||||||
import de.ellpeck.naturesaura.recipes.TreeRitualRecipe;
|
import de.ellpeck.naturesaura.recipes.TreeRitualRecipe;
|
||||||
|
@ -20,23 +19,15 @@ public class ProcessorTreeRitual implements IComponentProcessor {
|
||||||
if (this.recipe == null)
|
if (this.recipe == null)
|
||||||
return null;
|
return null;
|
||||||
if (key.startsWith("input")) {
|
if (key.startsWith("input")) {
|
||||||
int id = Integer.parseInt(key.substring(5)) - 1;
|
var id = Integer.parseInt(key.substring(5)) - 1;
|
||||||
if (this.recipe.ingredients.length > id)
|
return this.recipe.ingredients.length > id ? PatchouliCompat.ingredientVariable(this.recipe.ingredients[id]) : null;
|
||||||
return PatchouliCompat.ingredientVariable(this.recipe.ingredients[id]);
|
|
||||||
else
|
|
||||||
return null;
|
|
||||||
} else {
|
} else {
|
||||||
switch (key) {
|
return switch (key) {
|
||||||
case "output":
|
case "output" -> IVariable.from(this.recipe.result);
|
||||||
return IVariable.from(this.recipe.result);
|
case "sapling" -> PatchouliCompat.ingredientVariable(this.recipe.saplingType);
|
||||||
case "sapling":
|
case "name" -> IVariable.wrap(this.recipe.result.getDisplayName().getString());
|
||||||
return PatchouliCompat.ingredientVariable(this.recipe.saplingType);
|
default -> null;
|
||||||
case "name":
|
};
|
||||||
return IVariable.wrap(this.recipe.result.getDisplayName().getString());
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
|
@ -9,13 +9,15 @@ import net.minecraft.tags.BlockTags;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
import net.minecraftforge.common.Tags;
|
import net.minecraftforge.common.Tags;
|
||||||
|
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class BlockTagProvider extends BlockTagsProvider {
|
public class BlockTagProvider extends BlockTagsProvider {
|
||||||
|
|
||||||
public static final Tags.IOptionalNamedTag<Block> NETHER_ALTAR_WOOD = BlockTags.createOptional(new ResourceLocation(NaturesAura.MOD_ID, "nether_altar_wood"));
|
public static final Tags.IOptionalNamedTag<Block> NETHER_ALTAR_WOOD = BlockTags.createOptional(new ResourceLocation(NaturesAura.MOD_ID, "nether_altar_wood"));
|
||||||
|
|
||||||
public BlockTagProvider(DataGenerator generatorIn) {
|
public BlockTagProvider(DataGenerator gen, @Nullable ExistingFileHelper existingFileHelper) {
|
||||||
super(generatorIn);
|
super(gen, NaturesAura.MOD_ID, existingFileHelper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package de.ellpeck.naturesaura.data;
|
package de.ellpeck.naturesaura.data;
|
||||||
|
|
||||||
import net.minecraft.data.DataGenerator;
|
|
||||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent;
|
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent;
|
||||||
|
@ -13,7 +11,7 @@ public final class ModData {
|
||||||
public static void gatherData(GatherDataEvent event) {
|
public static void gatherData(GatherDataEvent event) {
|
||||||
var generator = event.getGenerator();
|
var generator = event.getGenerator();
|
||||||
var ex = event.getExistingFileHelper();
|
var ex = event.getExistingFileHelper();
|
||||||
var blockTags = new BlockTagProvider(generator);
|
var blockTags = new BlockTagProvider(generator, ex);
|
||||||
generator.addProvider(blockTags);
|
generator.addProvider(blockTags);
|
||||||
generator.addProvider(new ItemTagProvider(generator, blockTags, ex));
|
generator.addProvider(new ItemTagProvider(generator, blockTags, ex));
|
||||||
generator.addProvider(new BlockLootProvider(generator));
|
generator.addProvider(new BlockLootProvider(generator));
|
||||||
|
|
|
@ -26,6 +26,7 @@ import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.network.NetworkHooks;
|
import net.minecraftforge.network.NetworkHooks;
|
||||||
|
|
||||||
|
// TODO these behave very weirdly in-world
|
||||||
public class EntityEffectInhibitor extends Entity implements IVisualizable {
|
public class EntityEffectInhibitor extends Entity implements IVisualizable {
|
||||||
|
|
||||||
private static final EntityDataAccessor<String> INHIBITED_EFFECT = SynchedEntityData.defineId(EntityEffectInhibitor.class, EntityDataSerializers.STRING);
|
private static final EntityDataAccessor<String> INHIBITED_EFFECT = SynchedEntityData.defineId(EntityEffectInhibitor.class, EntityDataSerializers.STRING);
|
||||||
|
|
|
@ -11,21 +11,22 @@ import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.levelgen.feature.Feature;
|
import net.minecraft.world.level.levelgen.feature.Feature;
|
||||||
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
|
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
|
||||||
import net.minecraft.world.level.levelgen.feature.TreeFeature;
|
import net.minecraft.world.level.levelgen.feature.TreeFeature;
|
||||||
import net.minecraft.world.level.levelgen.feature.configurations.TreeConfiguration;
|
import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration;
|
||||||
|
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
|
||||||
import net.minecraft.world.level.material.Material;
|
import net.minecraft.world.level.material.Material;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import static net.minecraft.core.Direction.Axis;
|
import static net.minecraft.core.Direction.Axis;
|
||||||
|
|
||||||
public class LevelGenAncientTree extends Feature<TreeConfiguration> {
|
public class LevelGenAncientTree extends Feature<NoneFeatureConfiguration> {
|
||||||
|
|
||||||
public LevelGenAncientTree() {
|
public LevelGenAncientTree() {
|
||||||
super(Codec.unit(ModFeatures.Configured.ANCIENT_TREE.config()));
|
super(Codec.unit(FeatureConfiguration.NONE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean place(FeaturePlaceContext<TreeConfiguration> ctx) {
|
public boolean place(FeaturePlaceContext<NoneFeatureConfiguration> ctx) {
|
||||||
var level = ctx.level();
|
var level = ctx.level();
|
||||||
var pos = ctx.origin();
|
var pos = ctx.origin();
|
||||||
var rand = ctx.random();
|
var rand = ctx.random();
|
||||||
|
|
|
@ -23,6 +23,7 @@ import java.util.function.Supplier;
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public final class ParticleHandler {
|
public final class ParticleHandler {
|
||||||
|
|
||||||
|
// TODO fix particle transparency, they don't seem to fade on the edges anymore
|
||||||
public static final ParticleRenderType MAGIC = new ParticleRenderType() {
|
public static final ParticleRenderType MAGIC = new ParticleRenderType() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Ancient Trees",
|
"name": "Ancient Trees",
|
||||||
"icon": "naturesaura:ancient_leaves",
|
"icon": "naturesaura:ancient_leaves",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:wood_stand",
|
"advancement": "naturesaura:wood_stand",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Disentangler of Mortals",
|
"name": "Disentangler of Mortals",
|
||||||
"icon": "naturesaura:animal_generator",
|
"icon": "naturesaura:animal_generator",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:tainted_gold",
|
"advancement": "naturesaura:tainted_gold",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Reaper of Ender Heights",
|
"name": "Reaper of Ender Heights",
|
||||||
"icon": "naturesaura:chorus_generator",
|
"icon": "naturesaura:chorus_generator",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:aura_bottle_end",
|
"advancement": "naturesaura:aura_bottle_end",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Rose of Oblivion",
|
"name": "Rose of Oblivion",
|
||||||
"icon": "naturesaura:end_flower",
|
"icon": "naturesaura:end_flower",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:end_flower",
|
"advancement": "naturesaura:end_flower",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Firecracker Gaze",
|
"name": "Firecracker Gaze",
|
||||||
"icon": "naturesaura:firework_generator",
|
"icon": "naturesaura:firework_generator",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:offering",
|
"advancement": "naturesaura:offering",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Herbivorous Absorber",
|
"name": "Herbivorous Absorber",
|
||||||
"icon": "naturesaura:flower_generator",
|
"icon": "naturesaura:flower_generator",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Creational Catalyst",
|
"name": "Creational Catalyst",
|
||||||
"icon": "naturesaura:generator_limit_remover",
|
"icon": "naturesaura:generator_limit_remover",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:offering",
|
"advancement": "naturesaura:offering",
|
||||||
"priority": true,
|
"priority": true,
|
||||||
"pages": [
|
"pages": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Swamp Homi",
|
"name": "Swamp Homi",
|
||||||
"icon": "naturesaura:moss_generator",
|
"icon": "naturesaura:moss_generator",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Canopy Diminisher",
|
"name": "Canopy Diminisher",
|
||||||
"icon": "naturesaura:oak_generator",
|
"icon": "naturesaura:oak_generator",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "On Creating Aura",
|
"name": "On Creating Aura",
|
||||||
"icon": "naturesaura:gold_leaf",
|
"icon": "naturesaura:gold_leaf",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:wood_stand",
|
"advancement": "naturesaura:wood_stand",
|
||||||
"priority": true,
|
"priority": true,
|
||||||
"pages": [
|
"pages": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Ritual of the Brewer",
|
"name": "Ritual of the Brewer",
|
||||||
"icon": "naturesaura:potion_generator",
|
"icon": "naturesaura:potion_generator",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Shooting Mark",
|
"name": "Shooting Mark",
|
||||||
"icon": "naturesaura:projectile_generator",
|
"icon": "naturesaura:projectile_generator",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:tainted_gold",
|
"advancement": "naturesaura:tainted_gold",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Offshoot Observer",
|
"name": "Offshoot Observer",
|
||||||
"icon": "naturesaura:slime_split_generator",
|
"icon": "naturesaura:slime_split_generator",
|
||||||
"category": "creating",
|
"category": "naturesaura:creating",
|
||||||
"advancement": "naturesaura:tainted_gold",
|
"advancement": "naturesaura:tainted_gold",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Corporeal Eye",
|
"name": "Corporeal Eye",
|
||||||
"icon": "naturesaura:animal_container",
|
"icon": "naturesaura:animal_container",
|
||||||
"category": "devices",
|
"category": "naturesaura:devices",
|
||||||
"advancement": "naturesaura:eye",
|
"advancement": "naturesaura:eye",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Aura Detector",
|
"name": "Aura Detector",
|
||||||
"icon": "naturesaura:aura_detector",
|
"icon": "naturesaura:aura_detector",
|
||||||
"category": "devices",
|
"category": "naturesaura:devices",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Redstone Aura Vaporizer",
|
"name": "Redstone Aura Vaporizer",
|
||||||
"icon": "naturesaura:aura_timer",
|
"icon": "naturesaura:aura_timer",
|
||||||
"category": "devices",
|
"category": "naturesaura:devices",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Automatic Constructor",
|
"name": "Automatic Constructor",
|
||||||
"icon": "naturesaura:auto_crafter",
|
"icon": "naturesaura:auto_crafter",
|
||||||
"category": "devices",
|
"category": "naturesaura:devices",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Adept Hopper",
|
"name": "Adept Hopper",
|
||||||
"icon": "naturesaura:grated_chute",
|
"icon": "naturesaura:grated_chute",
|
||||||
"category": "devices",
|
"category": "naturesaura:devices",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Item Distributor",
|
"name": "Item Distributor",
|
||||||
"icon": "naturesaura:item_distributor",
|
"icon": "naturesaura:item_distributor",
|
||||||
"category": "devices",
|
"category": "naturesaura:devices",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Aura Attraction Cart",
|
"name": "Aura Attraction Cart",
|
||||||
"icon": "naturesaura:mover_cart",
|
"icon": "naturesaura:mover_cart",
|
||||||
"category": "devices",
|
"category": "naturesaura:devices",
|
||||||
"advancement": "naturesaura:aura_bottle_end",
|
"advancement": "naturesaura:aura_bottle_end",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Item Grounder",
|
"name": "Item Grounder",
|
||||||
"icon": "naturesaura:pickup_stopper",
|
"icon": "naturesaura:pickup_stopper",
|
||||||
"category": "devices",
|
"category": "naturesaura:devices",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Powder Manipulator",
|
"name": "Powder Manipulator",
|
||||||
"icon": "naturesaura:powder_placer",
|
"icon": "naturesaura:powder_placer",
|
||||||
"category": "devices",
|
"category": "naturesaura:devices",
|
||||||
"advancement": "naturesaura:positive_imbalance",
|
"advancement": "naturesaura:positive_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Inexplicable Anger",
|
"name": "Inexplicable Anger",
|
||||||
"icon": "minecraft:fire_charge",
|
"icon": "minecraft:fire_charge",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:negative_imbalance",
|
"advancement": "naturesaura:negative_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Increase of Fertility",
|
"name": "Increase of Fertility",
|
||||||
"icon": "minecraft:egg",
|
"icon": "minecraft:egg",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:positive_imbalance",
|
"advancement": "naturesaura:positive_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Breathlessness",
|
"name": "Breathlessness",
|
||||||
"icon": "minecraft:white_wool",
|
"icon": "minecraft:white_wool",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:negative_imbalance",
|
"advancement": "naturesaura:negative_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Natural Storage",
|
"name": "Natural Storage",
|
||||||
"icon": "naturesaura:aura_cache",
|
"icon": "naturesaura:aura_cache",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:positive_imbalance",
|
"advancement": "naturesaura:positive_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Natural Decay",
|
"name": "Natural Decay",
|
||||||
"icon": "naturesaura:decayed_leaves",
|
"icon": "naturesaura:decayed_leaves",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:negative_imbalance",
|
"advancement": "naturesaura:negative_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Effect Powder",
|
"name": "Effect Powder",
|
||||||
"icon": "naturesaura:effect_powder{effect:'naturesaura:plant_boost'}",
|
"icon": "naturesaura:effect_powder{effect:'naturesaura:plant_boost'}",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:positive_imbalance",
|
"advancement": "naturesaura:positive_imbalance",
|
||||||
"priority": true,
|
"priority": true,
|
||||||
"pages": [
|
"pages": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Unstable Outbreak",
|
"name": "Unstable Outbreak",
|
||||||
"icon": "minecraft:tnt",
|
"icon": "minecraft:tnt",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:negative_imbalance",
|
"advancement": "naturesaura:negative_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Crimson Decay",
|
"name": "Crimson Decay",
|
||||||
"icon": "minecraft:soul_sand",
|
"icon": "minecraft:soul_sand",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:negative_imbalance",
|
"advancement": "naturesaura:negative_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Crimson Overgrowth",
|
"name": "Crimson Overgrowth",
|
||||||
"icon": "naturesaura:nether_grass",
|
"icon": "naturesaura:nether_grass",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:positive_imbalance",
|
"advancement": "naturesaura:positive_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Mineral Amassing",
|
"name": "Mineral Amassing",
|
||||||
"icon": "minecraft:diamond_ore",
|
"icon": "minecraft:diamond_ore",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:positive_imbalance",
|
"advancement": "naturesaura:positive_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Vegetational Increase",
|
"name": "Vegetational Increase",
|
||||||
"icon": "minecraft:wheat_seeds",
|
"icon": "minecraft:wheat_seeds",
|
||||||
"category": "effects",
|
"category": "naturesaura:effects",
|
||||||
"advancement": "naturesaura:positive_imbalance",
|
"advancement": "naturesaura:positive_imbalance",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Aura, conceptually",
|
"name": "Aura, conceptually",
|
||||||
"icon": "naturesaura:gold_leaf",
|
"icon": "naturesaura:gold_leaf",
|
||||||
"category": "intro",
|
"category": "naturesaura:intro",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
"type": "text",
|
"type": "text",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Baubles",
|
"name": "Baubles",
|
||||||
"icon": "minecraft:totem_of_undying",
|
"icon": "minecraft:totem_of_undying",
|
||||||
"category": "intro",
|
"category": "naturesaura:intro",
|
||||||
"read_by_default": true,
|
"read_by_default": true,
|
||||||
"flag": "mod:baubles",
|
"flag": "mod:baubles",
|
||||||
"pages": [
|
"pages": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Magical Botany",
|
"name": "Magical Botany",
|
||||||
"icon": "minecraft:oak_sapling",
|
"icon": "minecraft:oak_sapling",
|
||||||
"category": "intro",
|
"category": "naturesaura:intro",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
"type": "text",
|
"type": "text",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "This Book",
|
"name": "This Book",
|
||||||
"icon": "patchouli:guide_book{'patchouli:book':'naturesaura:book'}",
|
"icon": "patchouli:guide_book{'patchouli:book':'naturesaura:book'}",
|
||||||
"category": "intro",
|
"category": "naturesaura:intro",
|
||||||
"priority": true,
|
"priority": true,
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Aura Cache",
|
"name": "Aura Cache",
|
||||||
"icon": "naturesaura:aura_cache",
|
"icon": "naturesaura:aura_cache",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"priority": true,
|
"priority": true,
|
||||||
"pages": [
|
"pages": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Aura Trove",
|
"name": "Aura Trove",
|
||||||
"icon": "naturesaura:aura_trove",
|
"icon": "naturesaura:aura_trove",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Eir's Token",
|
"name": "Eir's Token",
|
||||||
"icon": "naturesaura:break_prevention",
|
"icon": "naturesaura:break_prevention",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Staff of Shadows",
|
"name": "Staff of Shadows",
|
||||||
"icon": "naturesaura:cave_finder",
|
"icon": "naturesaura:cave_finder",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:offering",
|
"advancement": "naturesaura:offering",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Bucket of Infinite Color",
|
"name": "Bucket of Infinite Color",
|
||||||
"icon": "naturesaura:color_changer",
|
"icon": "naturesaura:color_changer",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Crimson Meal",
|
"name": "Crimson Meal",
|
||||||
"icon": "naturesaura:crimson_meal",
|
"icon": "naturesaura:crimson_meal",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:aura_bottle_nether",
|
"advancement": "naturesaura:aura_bottle_nether",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Ring of Last Chance",
|
"name": "Ring of Last Chance",
|
||||||
"icon": "naturesaura:death_ring",
|
"icon": "naturesaura:death_ring",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Eye of the Shulker",
|
"name": "Eye of the Shulker",
|
||||||
"icon": "naturesaura:end_city_finder",
|
"icon": "naturesaura:end_city_finder",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:aura_bottle_end",
|
"advancement": "naturesaura:aura_bottle_end",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Ender Ocular",
|
"name": "Ender Ocular",
|
||||||
"icon": "naturesaura:ender_access",
|
"icon": "naturesaura:ender_access",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:aura_bottle_end",
|
"advancement": "naturesaura:aura_bottle_end",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Environmental Eye",
|
"name": "Environmental Eye",
|
||||||
"icon": "naturesaura:eye",
|
"icon": "naturesaura:eye",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:wood_stand",
|
"advancement": "naturesaura:wood_stand",
|
||||||
"turnin": "naturesaura:eye",
|
"turnin": "naturesaura:eye",
|
||||||
"priority": true,
|
"priority": true,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Environmental Ocular",
|
"name": "Environmental Ocular",
|
||||||
"icon": "naturesaura:eye_improved",
|
"icon": "naturesaura:eye_improved",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:end_flower",
|
"advancement": "naturesaura:end_flower",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Eye of the Blaze",
|
"name": "Eye of the Blaze",
|
||||||
"icon": "naturesaura:fortress_finder",
|
"icon": "naturesaura:fortress_finder",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:aura_bottle_nether",
|
"advancement": "naturesaura:aura_bottle_nether",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Botanist's Armor",
|
"name": "Botanist's Armor",
|
||||||
"icon": "naturesaura:infused_iron_chest",
|
"icon": "naturesaura:infused_iron_chest",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Botanist's Tools",
|
"name": "Botanist's Tools",
|
||||||
"icon": "naturesaura:infused_iron_pickaxe",
|
"icon": "naturesaura:infused_iron_pickaxe",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Staff of Baldur",
|
"name": "Staff of Baldur",
|
||||||
"icon": "naturesaura:light_staff",
|
"icon": "naturesaura:light_staff",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Staff of Riches",
|
"name": "Staff of Riches",
|
||||||
"icon": "naturesaura:loot_finder",
|
"icon": "naturesaura:loot_finder",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:offering",
|
"advancement": "naturesaura:offering",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Staff of Ancient Knowledge",
|
"name": "Staff of Ancient Knowledge",
|
||||||
"icon": "naturesaura:netherite_finder",
|
"icon": "naturesaura:netherite_finder",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:offering",
|
"advancement": "naturesaura:offering",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Eye of the Pillager",
|
"name": "Eye of the Pillager",
|
||||||
"icon": "naturesaura:outpost_finder",
|
"icon": "naturesaura:outpost_finder",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:aura_bottle_overworld",
|
"advancement": "naturesaura:aura_bottle_overworld",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Token of Undying Friendship",
|
"name": "Token of Undying Friendship",
|
||||||
"icon": "naturesaura:pet_reviver",
|
"icon": "naturesaura:pet_reviver",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Mystical Magnifier",
|
"name": "Mystical Magnifier",
|
||||||
"icon": "naturesaura:range_visualizer",
|
"icon": "naturesaura:range_visualizer",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Amulet of Wrath",
|
"name": "Amulet of Wrath",
|
||||||
"icon": "naturesaura:shockwave_creator",
|
"icon": "naturesaura:shockwave_creator",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:tainted_gold",
|
"advancement": "naturesaura:tainted_gold",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Skyseeker's Armor",
|
"name": "Skyseeker's Armor",
|
||||||
"icon": "naturesaura:sky_chest",
|
"icon": "naturesaura:sky_chest",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Skyseeker's Tools",
|
"name": "Skyseeker's Tools",
|
||||||
"icon": "naturesaura:sky_pickaxe",
|
"icon": "naturesaura:sky_pickaxe",
|
||||||
"category": "items",
|
"category": "naturesaura:items",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Aura Bottling",
|
"name": "Aura Bottling",
|
||||||
"icon": "naturesaura:aura_bottle{stored_type:'naturesaura:overworld'}",
|
"icon": "naturesaura:aura_bottle{stored_type:'naturesaura:overworld'}",
|
||||||
"category": "practices",
|
"category": "naturesaura:practices",
|
||||||
"advancement": "naturesaura:wood_stand",
|
"advancement": "naturesaura:wood_stand",
|
||||||
"turnin": "naturesaura:aura_bottle_overworld",
|
"turnin": "naturesaura:aura_bottle_overworld",
|
||||||
"pages": [
|
"pages": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Aura Plants",
|
"name": "Aura Plants",
|
||||||
"icon": "naturesaura:aura_bloom",
|
"icon": "naturesaura:aura_bloom",
|
||||||
"category": "practices",
|
"category": "naturesaura:practices",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
"type": "text",
|
"type": "text",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Brilliant Trees",
|
"name": "Brilliant Trees",
|
||||||
"icon": "naturesaura:gold_leaf",
|
"icon": "naturesaura:gold_leaf",
|
||||||
"category": "practices",
|
"category": "naturesaura:practices",
|
||||||
"priority": true,
|
"priority": true,
|
||||||
"turnin": "naturesaura:gold_leaf",
|
"turnin": "naturesaura:gold_leaf",
|
||||||
"pages": [
|
"pages": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Offering to the Gods",
|
"name": "Offering to the Gods",
|
||||||
"icon": "naturesaura:offering_table",
|
"icon": "naturesaura:offering_table",
|
||||||
"category": "practices",
|
"category": "naturesaura:practices",
|
||||||
"advancement": "naturesaura:tainted_gold",
|
"advancement": "naturesaura:tainted_gold",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Ritual of the Forest",
|
"name": "Ritual of the Forest",
|
||||||
"icon": "naturesaura:wood_stand",
|
"icon": "naturesaura:wood_stand",
|
||||||
"category": "practices",
|
"category": "naturesaura:practices",
|
||||||
"advancement": "naturesaura:gold_leaf",
|
"advancement": "naturesaura:gold_leaf",
|
||||||
"priority": true,
|
"priority": true,
|
||||||
"turnin": "naturesaura:wood_stand",
|
"turnin": "naturesaura:wood_stand",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "The Natural Altar",
|
"name": "The Natural Altar",
|
||||||
"icon": "naturesaura:nature_altar",
|
"icon": "naturesaura:nature_altar",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:aura_bottle_overworld",
|
"advancement": "naturesaura:aura_bottle_overworld",
|
||||||
"priority": true,
|
"priority": true,
|
||||||
"turnin": "naturesaura:infused_materials",
|
"turnin": "naturesaura:infused_materials",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Altar of Birthing",
|
"name": "Altar of Birthing",
|
||||||
"icon": "naturesaura:animal_spawner",
|
"icon": "naturesaura:animal_spawner",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Nature's Mend",
|
"name": "Nature's Mend",
|
||||||
"icon": "minecraft:enchanted_book",
|
"icon": "minecraft:enchanted_book",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:infused_tools",
|
"advancement": "naturesaura:infused_tools",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Nature's Heal",
|
"name": "Nature's Heal",
|
||||||
"icon": "minecraft:enchanted_book",
|
"icon": "minecraft:enchanted_book",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:infused_tools",
|
"advancement": "naturesaura:infused_tools",
|
||||||
"flag": "mod:enchantability",
|
"flag": "mod:enchantability",
|
||||||
"pages": [
|
"pages": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Armorer's Aid",
|
"name": "Armorer's Aid",
|
||||||
"icon": "naturesaura:blast_furnace_booster",
|
"icon": "naturesaura:blast_furnace_booster",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:offering",
|
"advancement": "naturesaura:offering",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "World Eye",
|
"name": "World Eye",
|
||||||
"icon": "naturesaura:chunk_loader",
|
"icon": "naturesaura:chunk_loader",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:aura_bottle_end",
|
"advancement": "naturesaura:aura_bottle_end",
|
||||||
"flag": "naturesaura:chunk_loader",
|
"flag": "naturesaura:chunk_loader",
|
||||||
"pages": [
|
"pages": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Transmutation Catalyst",
|
"name": "Transmutation Catalyst",
|
||||||
"icon": "naturesaura:conversion_catalyst",
|
"icon": "naturesaura:conversion_catalyst",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "The Crimson Altar",
|
"name": "The Crimson Altar",
|
||||||
"icon": "naturesaura:nature_altar",
|
"icon": "naturesaura:nature_altar",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:aura_bottle_nether",
|
"advancement": "naturesaura:aura_bottle_nether",
|
||||||
"priority": true,
|
"priority": true,
|
||||||
"turnin": "naturesaura:tainted_gold",
|
"turnin": "naturesaura:tainted_gold",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Crumbling Catalyst",
|
"name": "Crumbling Catalyst",
|
||||||
"icon": "naturesaura:crushing_catalyst",
|
"icon": "naturesaura:crushing_catalyst",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Rails of the Worlds",
|
"name": "Rails of the Worlds",
|
||||||
"icon": "naturesaura:dimension_rail_nether",
|
"icon": "naturesaura:dimension_rail_nether",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Ender Crate",
|
"name": "Ender Crate",
|
||||||
"icon": "naturesaura:ender_crate",
|
"icon": "naturesaura:ender_crate",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:aura_bottle_end",
|
"advancement": "naturesaura:aura_bottle_end",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Aura Field Creator",
|
"name": "Aura Field Creator",
|
||||||
"icon": "naturesaura:field_creator",
|
"icon": "naturesaura:field_creator",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Extraneous Firestarter",
|
"name": "Extraneous Firestarter",
|
||||||
"icon": "naturesaura:furnace_heater",
|
"icon": "naturesaura:furnace_heater",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Hopper Enhancement",
|
"name": "Hopper Enhancement",
|
||||||
"icon": "naturesaura:hopper_upgrade",
|
"icon": "naturesaura:hopper_upgrade",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Imperceptible Builder",
|
"name": "Imperceptible Builder",
|
||||||
"icon": "naturesaura:placer",
|
"icon": "naturesaura:placer",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:infused_materials",
|
"advancement": "naturesaura:infused_materials",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Energetic Aura Forge",
|
"name": "Energetic Aura Forge",
|
||||||
"icon": "naturesaura:rf_converter",
|
"icon": "naturesaura:rf_converter",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"flag": "naturesaura:rf_converter",
|
"flag": "naturesaura:rf_converter",
|
||||||
"pages": [
|
"pages": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Winter's Calling",
|
"name": "Winter's Calling",
|
||||||
"icon": "naturesaura:snow_creator",
|
"icon": "naturesaura:snow_creator",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:sky_ingot",
|
"advancement": "naturesaura:sky_ingot",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Lamp of Sanctuary",
|
"name": "Lamp of Sanctuary",
|
||||||
"icon": "naturesaura:spawn_lamp",
|
"icon": "naturesaura:spawn_lamp",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:aura_bottle_end",
|
"advancement": "naturesaura:aura_bottle_end",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Everlasting Spring",
|
"name": "Everlasting Spring",
|
||||||
"icon": "naturesaura:spring",
|
"icon": "naturesaura:spring",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:offering",
|
"advancement": "naturesaura:offering",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Shifting Sundial",
|
"name": "Shifting Sundial",
|
||||||
"icon": "naturesaura:time_changer",
|
"icon": "naturesaura:time_changer",
|
||||||
"category": "using",
|
"category": "naturesaura:using",
|
||||||
"advancement": "naturesaura:aura_bottle_end",
|
"advancement": "naturesaura:aura_bottle_end",
|
||||||
"pages": [
|
"pages": [
|
||||||
{
|
{
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue