From 3f9e524b547ab493dc2725e8652d67488cbfc640 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Sun, 11 Oct 2020 13:44:48 +0300 Subject: [PATCH] End lily recipes --- src/main/java/ru/betterend/BetterEnd.java | 6 ++ .../ru/betterend/blocks/BlockChorusGrass.java | 16 ++++ .../ru/betterend/blocks/BlockEndLily.java | 18 +++++ .../blocks/complex/WoodenMaterial.java | 2 +- .../entities/EndStoneSmelterBlockEntity.java | 2 +- .../gui/EndStoneSmelterScreenHandler.java | 2 +- .../betterend/compat/REIAlloyingCategory.java | 2 +- .../betterend/compat/REIAlloyingDisplay.java | 2 +- .../ru/betterend/compat/REIAnvilDisplay.java | 2 +- .../ru/betterend/compat/REIContainer.java | 2 +- .../java/ru/betterend/compat/REIPlugin.java | 4 +- .../mixin/client/ClientRecipeBookMixin.java | 2 +- .../mixin/common/AnvilScreenHandlerMixin.java | 2 +- .../ru/betterend/recipe/AlloyingRecipes.java | 1 + .../ru/betterend/recipe/CraftingRecipes.java | 6 +- .../ru/betterend/recipe/SmeltigRecipes.java | 10 +++ .../ru/betterend/recipe/SmithingRecipes.java | 1 + .../recipe/{ => builders}/AlloyingRecipe.java | 3 +- .../{ => builders}/AnvilSmithingRecipe.java | 3 +- .../recipe/builders/FurnaceRecipe.java | 69 ++++++++++++++++++ .../recipe/{ => builders}/RecipeBuilder.java | 3 +- .../ru/betterend/registry/BlockRegistry.java | 4 +- .../ru/betterend/registry/ItemRegistry.java | 42 ++++++----- .../world/biome/BiomeChorusForest.java | 2 +- .../assets/betterend/lang/en_us.json | 12 ++- .../assets/betterend/lang/ru_ru.json | 35 ++++++++- .../betterend/models/item/end_lily_leaf.json | 6 ++ .../models/item/end_lily_leaf_dried.json | 6 ++ .../betterend/textures/block/end_lily_0.png | Bin 0 -> 1869 bytes .../betterend/textures/block/end_lily_1.png | Bin 0 -> 1911 bytes .../betterend/textures/block/end_lily_2.png | Bin 0 -> 1976 bytes .../betterend/textures/block/end_lily_3.png | Bin 0 -> 1801 bytes .../textures/item/end_lily_leaf_dried.png | Bin 0 -> 2249 bytes 33 files changed, 221 insertions(+), 44 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/BlockChorusGrass.java create mode 100644 src/main/java/ru/betterend/recipe/SmeltigRecipes.java rename src/main/java/ru/betterend/recipe/{ => builders}/AlloyingRecipe.java (98%) rename src/main/java/ru/betterend/recipe/{ => builders}/AnvilSmithingRecipe.java (98%) create mode 100644 src/main/java/ru/betterend/recipe/builders/FurnaceRecipe.java rename src/main/java/ru/betterend/recipe/{ => builders}/RecipeBuilder.java (94%) create mode 100644 src/main/resources/assets/betterend/models/item/end_lily_leaf.json create mode 100644 src/main/resources/assets/betterend/models/item/end_lily_leaf_dried.json create mode 100644 src/main/resources/assets/betterend/textures/block/end_lily_0.png create mode 100644 src/main/resources/assets/betterend/textures/block/end_lily_1.png create mode 100644 src/main/resources/assets/betterend/textures/block/end_lily_2.png create mode 100644 src/main/resources/assets/betterend/textures/block/end_lily_3.png create mode 100644 src/main/resources/assets/betterend/textures/item/end_lily_leaf_dried.png diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index e04202c8..93ae34e0 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -5,7 +5,10 @@ import net.minecraft.util.Identifier; import ru.betterend.config.MainConfig; import ru.betterend.effects.EndEnchantments; import ru.betterend.effects.EndPotions; +import ru.betterend.recipe.AlloyingRecipes; import ru.betterend.recipe.CraftingRecipes; +import ru.betterend.recipe.SmeltigRecipes; +import ru.betterend.recipe.SmithingRecipes; import ru.betterend.registry.BiomeRegistry; import ru.betterend.registry.BlockEntityRegistry; import ru.betterend.registry.BlockRegistry; @@ -41,6 +44,9 @@ public class BetterEnd implements ModInitializer { EndEnchantments.register(); EndPotions.register(); CraftingRecipes.register(); + SmeltigRecipes.register(); + AlloyingRecipes.register(); + SmithingRecipes.register(); StructureRegistry.register(); } diff --git a/src/main/java/ru/betterend/blocks/BlockChorusGrass.java b/src/main/java/ru/betterend/blocks/BlockChorusGrass.java new file mode 100644 index 00000000..1285ae98 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/BlockChorusGrass.java @@ -0,0 +1,16 @@ +package ru.betterend.blocks; + +import net.minecraft.block.BlockState; +import ru.betterend.blocks.basis.BlockPlant; +import ru.betterend.registry.BlockRegistry; + +public class BlockChorusGrass extends BlockPlant { + public BlockChorusGrass() { + super(true); + } + + @Override + protected boolean isTerrain(BlockState state) { + return state.getBlock() == BlockRegistry.CHORUS_NYLIUM; + } +} diff --git a/src/main/java/ru/betterend/blocks/BlockEndLily.java b/src/main/java/ru/betterend/blocks/BlockEndLily.java index 48a7bd5a..bace52e4 100644 --- a/src/main/java/ru/betterend/blocks/BlockEndLily.java +++ b/src/main/java/ru/betterend/blocks/BlockEndLily.java @@ -1,5 +1,10 @@ package ru.betterend.blocks; +import java.util.Collections; +import java.util.List; + +import com.google.common.collect.Lists; + import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.block.Block; @@ -8,6 +13,8 @@ import net.minecraft.block.Material; import net.minecraft.block.ShapeContext; import net.minecraft.fluid.FluidState; import net.minecraft.fluid.Fluids; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.state.StateManager; import net.minecraft.state.property.EnumProperty; @@ -18,6 +25,9 @@ import net.minecraft.world.BlockView; import net.minecraft.world.WorldView; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.BlockUnderwaterPlant; +import ru.betterend.registry.BlockRegistry; +import ru.betterend.registry.ItemRegistry; +import ru.betterend.util.MHelper; public class BlockEndLily extends BlockUnderwaterPlant { public static final EnumProperty SHAPE = BlockProperties.TRIPLE_SHAPE; @@ -64,4 +74,12 @@ public class BlockEndLily extends BlockUnderwaterPlant { return up.getBlock() == this && down.getBlock() == this; } } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + if (state.get(SHAPE) == TripleShape.TOP) { + return Lists.newArrayList(new ItemStack(ItemRegistry.END_LILY_LEAF, MHelper.randRange(1, 2, MHelper.RANDOM)), new ItemStack(BlockRegistry.END_LILY_SEED, MHelper.randRange(1, 2, MHelper.RANDOM))); + } + return Collections.emptyList(); + } } diff --git a/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java b/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java index 9ab132bd..ab678970 100644 --- a/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java @@ -26,7 +26,7 @@ import ru.betterend.blocks.basis.BlockSlab; import ru.betterend.blocks.basis.BlockStairs; import ru.betterend.blocks.basis.BlockTrapdoor; import ru.betterend.blocks.basis.BlockWoodenButton; -import ru.betterend.recipe.RecipeBuilder; +import ru.betterend.recipe.builders.RecipeBuilder; import ru.betterend.registry.BlockRegistry; import ru.betterend.util.TagHelper; diff --git a/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java b/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java index a36a6d81..a53099ac 100644 --- a/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java +++ b/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java @@ -44,7 +44,7 @@ import net.minecraft.world.World; import ru.betterend.BetterEnd; import ru.betterend.blocks.EndStoneSmelter; import ru.betterend.client.gui.EndStoneSmelterScreenHandler; -import ru.betterend.recipe.AlloyingRecipe; +import ru.betterend.recipe.builders.AlloyingRecipe; import ru.betterend.registry.BlockEntityRegistry; public class EndStoneSmelterBlockEntity extends LockableContainerBlockEntity implements SidedInventory, RecipeUnlocker, RecipeInputProvider, Tickable { diff --git a/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreenHandler.java b/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreenHandler.java index 914a432a..69aaa0f8 100644 --- a/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreenHandler.java +++ b/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreenHandler.java @@ -23,7 +23,7 @@ import ru.betterend.blocks.EndStoneSmelter; import ru.betterend.blocks.entities.EndStoneSmelterBlockEntity; import ru.betterend.client.gui.slot.SmelterFuelSlot; import ru.betterend.client.gui.slot.SmelterOutputSlot; -import ru.betterend.recipe.AlloyingRecipe; +import ru.betterend.recipe.builders.AlloyingRecipe; public class EndStoneSmelterScreenHandler extends AbstractRecipeScreenHandler { diff --git a/src/main/java/ru/betterend/compat/REIAlloyingCategory.java b/src/main/java/ru/betterend/compat/REIAlloyingCategory.java index b48c3641..14562618 100644 --- a/src/main/java/ru/betterend/compat/REIAlloyingCategory.java +++ b/src/main/java/ru/betterend/compat/REIAlloyingCategory.java @@ -21,7 +21,7 @@ import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; -import ru.betterend.recipe.AlloyingRecipe; +import ru.betterend.recipe.builders.AlloyingRecipe; import ru.betterend.registry.BlockRegistry; import ru.betterend.util.LangUtil; diff --git a/src/main/java/ru/betterend/compat/REIAlloyingDisplay.java b/src/main/java/ru/betterend/compat/REIAlloyingDisplay.java index 30fb4ad4..3b8e4d6d 100644 --- a/src/main/java/ru/betterend/compat/REIAlloyingDisplay.java +++ b/src/main/java/ru/betterend/compat/REIAlloyingDisplay.java @@ -18,7 +18,7 @@ import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; import ru.betterend.blocks.entities.EndStoneSmelterBlockEntity; -import ru.betterend.recipe.AlloyingRecipe; +import ru.betterend.recipe.builders.AlloyingRecipe; public class REIAlloyingDisplay implements TransferRecipeDisplay { diff --git a/src/main/java/ru/betterend/compat/REIAnvilDisplay.java b/src/main/java/ru/betterend/compat/REIAnvilDisplay.java index 5eb19aa9..f554b8d9 100644 --- a/src/main/java/ru/betterend/compat/REIAnvilDisplay.java +++ b/src/main/java/ru/betterend/compat/REIAnvilDisplay.java @@ -12,7 +12,7 @@ import me.shedaniel.rei.server.ContainerInfo; import net.minecraft.recipe.Recipe; import net.minecraft.screen.ScreenHandler; import net.minecraft.util.Identifier; -import ru.betterend.recipe.AnvilSmithingRecipe; +import ru.betterend.recipe.builders.AnvilSmithingRecipe; public class REIAnvilDisplay implements TransferRecipeDisplay { diff --git a/src/main/java/ru/betterend/compat/REIContainer.java b/src/main/java/ru/betterend/compat/REIContainer.java index 0b660343..ec5f4946 100644 --- a/src/main/java/ru/betterend/compat/REIContainer.java +++ b/src/main/java/ru/betterend/compat/REIContainer.java @@ -3,7 +3,7 @@ package ru.betterend.compat; import me.shedaniel.rei.plugin.containers.CraftingContainerInfoWrapper; import me.shedaniel.rei.server.ContainerInfoHandler; import ru.betterend.client.gui.EndStoneSmelterScreenHandler; -import ru.betterend.recipe.AlloyingRecipe; +import ru.betterend.recipe.builders.AlloyingRecipe; public class REIContainer implements Runnable { diff --git a/src/main/java/ru/betterend/compat/REIPlugin.java b/src/main/java/ru/betterend/compat/REIPlugin.java index b7c88782..726a63fb 100644 --- a/src/main/java/ru/betterend/compat/REIPlugin.java +++ b/src/main/java/ru/betterend/compat/REIPlugin.java @@ -9,8 +9,8 @@ import net.minecraft.block.Blocks; import net.minecraft.recipe.BlastingRecipe; import net.minecraft.util.Identifier; import ru.betterend.BetterEnd; -import ru.betterend.recipe.AlloyingRecipe; -import ru.betterend.recipe.AnvilSmithingRecipe; +import ru.betterend.recipe.builders.AlloyingRecipe; +import ru.betterend.recipe.builders.AnvilSmithingRecipe; import ru.betterend.registry.BlockRegistry; @Environment(EnvType.CLIENT) diff --git a/src/main/java/ru/betterend/mixin/client/ClientRecipeBookMixin.java b/src/main/java/ru/betterend/mixin/client/ClientRecipeBookMixin.java index 6841b21f..1bae0e59 100644 --- a/src/main/java/ru/betterend/mixin/client/ClientRecipeBookMixin.java +++ b/src/main/java/ru/betterend/mixin/client/ClientRecipeBookMixin.java @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import net.minecraft.client.recipebook.ClientRecipeBook; import net.minecraft.client.recipebook.RecipeBookGroup; import net.minecraft.recipe.Recipe; -import ru.betterend.recipe.AlloyingRecipe; +import ru.betterend.recipe.builders.AlloyingRecipe; @Mixin(ClientRecipeBook.class) public abstract class ClientRecipeBookMixin { diff --git a/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java b/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java index d8eb9ac3..d2292b3d 100644 --- a/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java @@ -19,7 +19,7 @@ import net.minecraft.screen.ScreenHandlerContext; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.tag.BlockTags; import net.minecraft.world.World; -import ru.betterend.recipe.AnvilSmithingRecipe; +import ru.betterend.recipe.builders.AnvilSmithingRecipe; @Mixin(AnvilScreenHandler.class) public abstract class AnvilScreenHandlerMixin extends ForgingScreenHandler { diff --git a/src/main/java/ru/betterend/recipe/AlloyingRecipes.java b/src/main/java/ru/betterend/recipe/AlloyingRecipes.java index fe832d48..5033e162 100644 --- a/src/main/java/ru/betterend/recipe/AlloyingRecipes.java +++ b/src/main/java/ru/betterend/recipe/AlloyingRecipes.java @@ -2,6 +2,7 @@ package ru.betterend.recipe; import net.minecraft.block.Blocks; import net.minecraft.item.Items; +import ru.betterend.recipe.builders.AlloyingRecipe; import ru.betterend.registry.ItemRegistry; public class AlloyingRecipes { diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index a8ec163c..65bece8b 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -3,6 +3,7 @@ package ru.betterend.recipe; import net.minecraft.block.Blocks; import net.minecraft.item.Item; import net.minecraft.item.Items; +import ru.betterend.recipe.builders.RecipeBuilder; import ru.betterend.registry.BlockRegistry; import ru.betterend.registry.ItemRegistry; @@ -68,9 +69,8 @@ public class CraftingRecipes { RecipeBuilder.make("creeping_moss_dye", Items.CYAN_DYE).setList("#").addMaterial('#', BlockRegistry.CREEPING_MOSS).build(); RecipeBuilder.make("umbrella_moss_dye", Items.YELLOW_DYE).setList("#").addMaterial('#', BlockRegistry.UMBRELLA_MOSS).build(); RecipeBuilder.make("umbrella_moss_tall_dye", Items.YELLOW_DYE).setList("#").addMaterial('#', BlockRegistry.UMBRELLA_MOSS_TALL).build(); - - AlloyingRecipes.register(); - SmithingRecipes.register(); + + RecipeBuilder.make("paper", Items.PAPER).setShape("###").addMaterial('#', ItemRegistry.END_LILY_LEAF_DRIED).setOutputCount(3).build(); } private static void registerHelmet(String name, Item material, Item result) { diff --git a/src/main/java/ru/betterend/recipe/SmeltigRecipes.java b/src/main/java/ru/betterend/recipe/SmeltigRecipes.java new file mode 100644 index 00000000..b6db0fd3 --- /dev/null +++ b/src/main/java/ru/betterend/recipe/SmeltigRecipes.java @@ -0,0 +1,10 @@ +package ru.betterend.recipe; + +import ru.betterend.recipe.builders.FurnaceRecipe; +import ru.betterend.registry.ItemRegistry; + +public class SmeltigRecipes { + public static void register() { + FurnaceRecipe.make("end_lily_leaf_dried", ItemRegistry.END_LILY_LEAF, ItemRegistry.END_LILY_LEAF_DRIED).build(); + } +} diff --git a/src/main/java/ru/betterend/recipe/SmithingRecipes.java b/src/main/java/ru/betterend/recipe/SmithingRecipes.java index ce86f314..21541302 100644 --- a/src/main/java/ru/betterend/recipe/SmithingRecipes.java +++ b/src/main/java/ru/betterend/recipe/SmithingRecipes.java @@ -1,6 +1,7 @@ package ru.betterend.recipe; import net.minecraft.item.Items; +import ru.betterend.recipe.builders.AnvilSmithingRecipe; import ru.betterend.registry.ItemRegistry; public class SmithingRecipes { diff --git a/src/main/java/ru/betterend/recipe/AlloyingRecipe.java b/src/main/java/ru/betterend/recipe/builders/AlloyingRecipe.java similarity index 98% rename from src/main/java/ru/betterend/recipe/AlloyingRecipe.java rename to src/main/java/ru/betterend/recipe/builders/AlloyingRecipe.java index 9ff27de7..f2b2e6f6 100644 --- a/src/main/java/ru/betterend/recipe/AlloyingRecipe.java +++ b/src/main/java/ru/betterend/recipe/builders/AlloyingRecipe.java @@ -1,4 +1,4 @@ -package ru.betterend.recipe; +package ru.betterend.recipe.builders; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -21,6 +21,7 @@ import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.registry.Registry; import net.minecraft.world.World; import ru.betterend.BetterEnd; +import ru.betterend.recipe.EndRecipeManager; import ru.betterend.registry.BlockRegistry; public class AlloyingRecipe implements Recipe { diff --git a/src/main/java/ru/betterend/recipe/AnvilSmithingRecipe.java b/src/main/java/ru/betterend/recipe/builders/AnvilSmithingRecipe.java similarity index 98% rename from src/main/java/ru/betterend/recipe/AnvilSmithingRecipe.java rename to src/main/java/ru/betterend/recipe/builders/AnvilSmithingRecipe.java index 0b64f76d..f49b77a6 100644 --- a/src/main/java/ru/betterend/recipe/AnvilSmithingRecipe.java +++ b/src/main/java/ru/betterend/recipe/builders/AnvilSmithingRecipe.java @@ -1,4 +1,4 @@ -package ru.betterend.recipe; +package ru.betterend.recipe.builders; import com.google.gson.JsonObject; @@ -22,6 +22,7 @@ import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.registry.Registry; import net.minecraft.world.World; import ru.betterend.BetterEnd; +import ru.betterend.recipe.EndRecipeManager; import ru.betterend.registry.ItemTagRegistry; public class AnvilSmithingRecipe implements Recipe { diff --git a/src/main/java/ru/betterend/recipe/builders/FurnaceRecipe.java b/src/main/java/ru/betterend/recipe/builders/FurnaceRecipe.java new file mode 100644 index 00000000..455cbb64 --- /dev/null +++ b/src/main/java/ru/betterend/recipe/builders/FurnaceRecipe.java @@ -0,0 +1,69 @@ +package ru.betterend.recipe.builders; + +import net.minecraft.item.ItemConvertible; +import net.minecraft.item.ItemStack; +import net.minecraft.recipe.Ingredient; +import net.minecraft.recipe.RecipeType; +import net.minecraft.recipe.SmeltingRecipe; +import net.minecraft.util.Identifier; +import ru.betterend.BetterEnd; +import ru.betterend.recipe.EndRecipeManager; +import ru.betterend.util.RecipeHelper; + +public class FurnaceRecipe { + private static final FurnaceRecipe INSTANCE = new FurnaceRecipe(); + + private ItemConvertible input; + private ItemConvertible output; + private boolean exist = true; + private String group; + private String name; + private int count; + private int time; + private float xp; + + private FurnaceRecipe() {} + + public static FurnaceRecipe make(String name, ItemConvertible input, ItemConvertible output) { + INSTANCE.name = name; + INSTANCE.group = ""; + INSTANCE.input = input; + INSTANCE.output = output; + INSTANCE.count = 1; + INSTANCE.time = 200; + INSTANCE.xp = 0; + INSTANCE.exist = RecipeHelper.exists(output) && RecipeHelper.exists(input); + return INSTANCE; + } + + public FurnaceRecipe setGroup(String group) { + this.group = group; + return this; + } + + public FurnaceRecipe setOutputCount(int count) { + this.count = count; + return this; + } + + public FurnaceRecipe setXP(float xp) { + this.xp = xp; + return this; + } + + public FurnaceRecipe setCookTime(int time) { + this.time = time; + return this; + } + + public void build() { + if (exist) { + Identifier id = BetterEnd.makeID(name); + SmeltingRecipe recipe = new SmeltingRecipe(id, group, Ingredient.ofItems(input), new ItemStack(output, count), xp, time); + EndRecipeManager.addRecipe(RecipeType.SMELTING, recipe); + } + else { + BetterEnd.LOGGER.debug("Smelting recipe {} couldn't be added", name); + } + } +} diff --git a/src/main/java/ru/betterend/recipe/RecipeBuilder.java b/src/main/java/ru/betterend/recipe/builders/RecipeBuilder.java similarity index 94% rename from src/main/java/ru/betterend/recipe/RecipeBuilder.java rename to src/main/java/ru/betterend/recipe/builders/RecipeBuilder.java index 20bb1825..d65c2d50 100644 --- a/src/main/java/ru/betterend/recipe/RecipeBuilder.java +++ b/src/main/java/ru/betterend/recipe/builders/RecipeBuilder.java @@ -1,4 +1,4 @@ -package ru.betterend.recipe; +package ru.betterend.recipe.builders; import java.util.Map; @@ -16,6 +16,7 @@ import net.minecraft.tag.Tag; import net.minecraft.util.Identifier; import net.minecraft.util.collection.DefaultedList; import ru.betterend.BetterEnd; +import ru.betterend.recipe.EndRecipeManager; import ru.betterend.util.RecipeHelper; public class RecipeBuilder { diff --git a/src/main/java/ru/betterend/registry/BlockRegistry.java b/src/main/java/ru/betterend/registry/BlockRegistry.java index eab11156..847bc5a5 100644 --- a/src/main/java/ru/betterend/registry/BlockRegistry.java +++ b/src/main/java/ru/betterend/registry/BlockRegistry.java @@ -12,6 +12,7 @@ import ru.betterend.blocks.BlockBlueVine; import ru.betterend.blocks.BlockBlueVineLantern; import ru.betterend.blocks.BlockBlueVineSeed; import ru.betterend.blocks.BlockBubbleCoral; +import ru.betterend.blocks.BlockChorusGrass; import ru.betterend.blocks.BlockEndLily; import ru.betterend.blocks.BlockEndLilySeed; import ru.betterend.blocks.BlockEndstoneDust; @@ -29,7 +30,6 @@ import ru.betterend.blocks.EndStoneSmelter; import ru.betterend.blocks.EnderBlock; import ru.betterend.blocks.TerminiteBlock; import ru.betterend.blocks.basis.BlockGlowingFur; -import ru.betterend.blocks.basis.BlockPlant; import ru.betterend.blocks.basis.BlockVine; import ru.betterend.blocks.complex.WoodenMaterial; import ru.betterend.tab.CreativeTab; @@ -71,7 +71,7 @@ public class BlockRegistry { public static final Block END_LILY = registerBlockNI("end_lily", new BlockEndLily()); public static final Block END_LILY_SEED = registerBlock("end_lily_seed", new BlockEndLilySeed()); - public static final Block CHORUS_GRASS = registerBlock("chorus_grass", new BlockPlant(true)); + public static final Block CHORUS_GRASS = registerBlock("chorus_grass", new BlockChorusGrass()); // Vines // public static final Block DENSE_VINE = registerBlock("dense_vine", new BlockVine(15, true)); diff --git a/src/main/java/ru/betterend/registry/ItemRegistry.java b/src/main/java/ru/betterend/registry/ItemRegistry.java index 80b6e733..08f3a2fa 100644 --- a/src/main/java/ru/betterend/registry/ItemRegistry.java +++ b/src/main/java/ru/betterend/registry/ItemRegistry.java @@ -39,12 +39,14 @@ public class ItemRegistry { private static final List MOD_BLOCKS = Lists.newArrayList(); private static final List MOD_ITEMS = Lists.newArrayList(); - //Materials + // Materials // public final static Item ENDER_DUST = registerItem("ender_dust", new Item(makeSettings())); public final static Item TERMINITE_INGOT = registerItem("terminite_ingot", new Item(makeSettings())); public final static Item AETERNIUM_INGOT = registerItem("aeternium_ingot", new Item(makeSettings())); + public final static Item END_LILY_LEAF = registerItem("end_lily_leaf", new Item(makeSettings())); + public final static Item END_LILY_LEAF_DRIED = registerItem("end_lily_leaf_dried", new Item(makeSettings())); - //Armor + // Armor // public static final Item TERMINITE_HELMET = registerItem("terminite_helmet", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.HEAD, makeSettings())); public static final Item TERMINITE_CHESTPLATE = registerItem("terminite_chestplate", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.CHEST, makeSettings())); public static final Item TERMINITE_LEGGINGS = registerItem("terminite_leggings", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.LEGS, makeSettings())); @@ -54,24 +56,24 @@ public class ItemRegistry { public static final Item AETERNIUM_LEGGINGS = registerItem("aeternium_leggings", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.LEGS, makeSettings())); public static final Item AETERNIUM_BOOTS = registerItem("aeternium_boots", new ArmorItem(EndArmorMaterial.AETERNIUM, EquipmentSlot.FEET, makeSettings())); - //Tools - public static ToolItem TERMINITE_SHOVEL = registerTool("terminite_shovel", new ShovelItem(EndToolMaterial.TERMINITE, 1.5F, -3.0F, makeSettings())); - public static ToolItem TERMINITE_SWORD = registerTool("terminite_sword", new SwordItem(EndToolMaterial.TERMINITE, 3, -2.4F, makeSettings())); - public static ToolItem TERMINITE_PICKAXE = registerTool("terminite_pickaxe", new EndPickaxe(EndToolMaterial.TERMINITE, 1, -2.8F, makeSettings())); - public static ToolItem TERMINITE_AXE = registerTool("terminite_axe", new EndAxe(EndToolMaterial.TERMINITE, 6.0F, -3.0F, makeSettings())); - public static ToolItem TERMINITE_HOE = registerTool("terminite_hoe", new EndHoe(EndToolMaterial.TERMINITE, -3, 0.0F, makeSettings())); - public static ToolItem TERMINITE_HAMMER = registerTool("terminite_hammer", new EndHammer(EndToolMaterial.TERMINITE, 5.0F, -3.2F, 0.3D, makeSettings())); - public static ToolItem AETERNIUM_SHOVEL = registerTool("aeternium_shovel", new ShovelItem(EndToolMaterial.AETERNIUM, 1.5F, -3.0F, makeSettings())); - public static ToolItem AETERNIUM_SWORD = registerTool("aeternium_sword", new SwordItem(EndToolMaterial.AETERNIUM, 3, -2.4F, makeSettings())); - public static ToolItem AETERNIUM_PICKAXE = registerTool("aeternium_pickaxe", new EndPickaxe(EndToolMaterial.AETERNIUM, 1, -2.8F, makeSettings())); - public static ToolItem AETERNIUM_AXE = registerTool("aeternium_axe", new EndAxe(EndToolMaterial.AETERNIUM, 5.0F, -3.0F, makeSettings())); - public static ToolItem AETERNIUM_HOE = registerTool("aeternium_hoe", new EndHoe(EndToolMaterial.AETERNIUM, -3, 0.0F, makeSettings())); - public static ToolItem AETERNIUM_HAMMER = registerTool("aeternium_hammer", new EndHammer(EndToolMaterial.AETERNIUM, 6.0F, -3.0F, 0.3D, makeSettings())); - public static ToolItem IRON_HAMMER = registerTool("iron_hammer", new EndHammer(ToolMaterials.IRON, 5.0F, -3.2F, 0.2D, makeSettings())); - public static ToolItem GOLDEN_HAMMER = registerTool("golden_hammer", new EndHammer(ToolMaterials.GOLD, 4.5F, -3.4F, 0.3D, makeSettings())); - public static ToolItem DIAMOND_HAMMER = registerTool("diamond_hammer", new EndHammer(ToolMaterials.DIAMOND, 5.5F, -3.1F, 0.2D, makeSettings())); - public static ToolItem NETHERITE_HAMMER = registerTool("netherite_hammer", new EndHammer(ToolMaterials.NETHERITE, 5.0F, -3.0F, 0.2D, makeSettings())); - + // Tools // + public static final ToolItem TERMINITE_SHOVEL = registerTool("terminite_shovel", new ShovelItem(EndToolMaterial.TERMINITE, 1.5F, -3.0F, makeSettings())); + public static final ToolItem TERMINITE_SWORD = registerTool("terminite_sword", new SwordItem(EndToolMaterial.TERMINITE, 3, -2.4F, makeSettings())); + public static final ToolItem TERMINITE_PICKAXE = registerTool("terminite_pickaxe", new EndPickaxe(EndToolMaterial.TERMINITE, 1, -2.8F, makeSettings())); + public static final ToolItem TERMINITE_AXE = registerTool("terminite_axe", new EndAxe(EndToolMaterial.TERMINITE, 6.0F, -3.0F, makeSettings())); + public static final ToolItem TERMINITE_HOE = registerTool("terminite_hoe", new EndHoe(EndToolMaterial.TERMINITE, -3, 0.0F, makeSettings())); + public static final ToolItem TERMINITE_HAMMER = registerTool("terminite_hammer", new EndHammer(EndToolMaterial.TERMINITE, 5.0F, -3.2F, 0.3D, makeSettings())); + public static final ToolItem AETERNIUM_SHOVEL = registerTool("aeternium_shovel", new ShovelItem(EndToolMaterial.AETERNIUM, 1.5F, -3.0F, makeSettings())); + public static final ToolItem AETERNIUM_SWORD = registerTool("aeternium_sword", new SwordItem(EndToolMaterial.AETERNIUM, 3, -2.4F, makeSettings())); + public static final ToolItem AETERNIUM_PICKAXE = registerTool("aeternium_pickaxe", new EndPickaxe(EndToolMaterial.AETERNIUM, 1, -2.8F, makeSettings())); + public static final ToolItem AETERNIUM_AXE = registerTool("aeternium_axe", new EndAxe(EndToolMaterial.AETERNIUM, 5.0F, -3.0F, makeSettings())); + public static final ToolItem AETERNIUM_HOE = registerTool("aeternium_hoe", new EndHoe(EndToolMaterial.AETERNIUM, -3, 0.0F, makeSettings())); + public static final ToolItem AETERNIUM_HAMMER = registerTool("aeternium_hammer", new EndHammer(EndToolMaterial.AETERNIUM, 6.0F, -3.0F, 0.3D, makeSettings())); + public static final ToolItem IRON_HAMMER = registerTool("iron_hammer", new EndHammer(ToolMaterials.IRON, 5.0F, -3.2F, 0.2D, makeSettings())); + public static final ToolItem GOLDEN_HAMMER = registerTool("golden_hammer", new EndHammer(ToolMaterials.GOLD, 4.5F, -3.4F, 0.3D, makeSettings())); + public static final ToolItem DIAMOND_HAMMER = registerTool("diamond_hammer", new EndHammer(ToolMaterials.DIAMOND, 5.5F, -3.1F, 0.2D, makeSettings())); + public static final ToolItem NETHERITE_HAMMER = registerTool("netherite_hammer", new EndHammer(ToolMaterials.NETHERITE, 5.0F, -3.0F, 0.2D, makeSettings())); + protected static Item registerItem(String name, Item item) { if (item != Items.AIR) { Registry.register(Registry.ITEM, BetterEnd.makeID(name), item); diff --git a/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java b/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java index 4d07d47d..53129b27 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java +++ b/src/main/java/ru/betterend/world/biome/BiomeChorusForest.java @@ -10,7 +10,7 @@ public class BiomeChorusForest extends EndBiome { public BiomeChorusForest() { super(new BiomeDefinition("chorus_forest") .setFogColor(87, 26, 87) - .setFogDensity(3) + .setFogDensity(1.5F) .setSurface(BlockRegistry.CHORUS_NYLIUM) //.setParticles(ParticleRegistry.GLOWING_SPHERE, 0.001F) //.setLoop(SoundRegistry.AMBIENT_FOGGY_MUSHROOMLAND) diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 7f8e4b9a..0f80aefb 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -2,6 +2,7 @@ "itemGroup.betterend.items": "Better End", "biome.betterend.foggy_mushroomland": "Foggy Mushroomland", + "biome.betterend.chorus_forest": "Chorus Forest", "entity.betterend.dragonfly": "Dragonfly", "item.betterend.spawn_egg_dragonfly": "Dragonfly Spawn Egg", @@ -117,5 +118,14 @@ "block.betterend.chorus_stairs": "Chorus Stairs", "block.betterend.chorus_stripped_bark": "Chorus Stripped Bark", "block.betterend.chorus_stripped_log": "Chorus Stripped Log", - "block.betterend.chorus_trapdoor": "Chorus Trapdoor" + "block.betterend.chorus_trapdoor": "Chorus Trapdoor", + + "block.betterend.chorus_nylium": "Chorus Nylium", + "block.betterend.chorus_nylium_path": "Chorus Nylium Path", + "block.betterend.chorus_grass": "Chorus Grass", + + "block.betterend.end_lily": "End Lily", + "block.betterend.end_lily_seed": "End Lily Seed", + "item.betterend.end_lily_leaf": "End Lily Leaf", + "item.betterend.end_lily_leaf_dried": "End Lily Leaf Dried" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index 580b5c6c..73c11f44 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -2,6 +2,7 @@ "itemGroup.betterend.items": "Улучшенный Край", "biome.betterend.foggy_mushroomland": "Туманное гриболесье", + "biome.betterend.chorus_forest": "Хорусовый лес", "entity.betterend.dragonfly": "Стрекоза", "item.betterend.spawn_egg_dragonfly": "Яйцо призыва стрекозы", @@ -14,8 +15,8 @@ "block.betterend.endstone_dust": "Эндерняковая пыль", "block.betterend.flavolite": "Флаволит", - "block.betterend.end_mycelium_path": "Дорога из мицелия края", - "block.betterend.end_moss_path": "Дорога из мха края", + "block.betterend.end_mycelium_path": "Тропа из мицелия края", + "block.betterend.end_moss_path": "Тропа из мха края", "block.betterend.ender_ore": "Руда Края", "block.betterend.terminite_block": "Блок Терминита", @@ -98,5 +99,33 @@ "block.betterend.bubble_coral": "Пузырчатый коралл", "block.betterend.aurora_crystal": "Кристалл авроры", - "category.rei.damage.amount&dmg": "Износ инструмента: %s" + "category.rei.damage.amount&dmg": "Износ инструмента: %s", + + "block.betterend.chorus_bark": "Кора хоруса", + "block.betterend.chorus_barrel": "Бочка из хоруса", + "block.betterend.chorus_button": "Кнопка из хоруса", + "block.betterend.chorus_chest": "Сундук из хоруса", + "block.betterend.chorus_crafting_table": "Верстак из хоруса", + "block.betterend.chorus_door": "Дверь из хоруса", + "block.betterend.chorus_fence": "Забор из хоруса", + "block.betterend.chorus_gate": "Калитка из хоруса", + "block.betterend.chorus_ladder": "Лестница из хоруса", + "block.betterend.chorus_log": "Бревно хоруса", + "block.betterend.chorus_planks": "Доски хоруса", + "block.betterend.chorus_plate": "Нажимная плита из хоруса", + "block.betterend.chorus_sign": "Табличка из хоруса", + "block.betterend.chorus_slab": "Плита из хоруса", + "block.betterend.chorus_stairs": "Ступени из хоруса", + "block.betterend.chorus_stripped_bark": "Обтёсанная кора хоруса", + "block.betterend.chorus_stripped_log": "Обтёсанное бревно хоруса", + "block.betterend.chorus_trapdoor": "Люк из хоруса", + + "block.betterend.chorus_nylium": "Нилий хоруса", + "block.betterend.chorus_nylium_path": "Тропа из нилия хоруса", + "block.betterend.chorus_grass": "Трава хоруса", + + "block.betterend.end_lily": "Лилия Края", + "block.betterend.end_lily_seed": "Семя лилии Края", + "item.betterend.end_lily_leaf": "Лист лилии Края", + "item.betterend.end_lily_leaf_dried": "Высушенный лист лилии Края" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/end_lily_leaf.json b/src/main/resources/assets/betterend/models/item/end_lily_leaf.json new file mode 100644 index 00000000..8ed24032 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/end_lily_leaf.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:block/end_lily_leaf_small" + } +} diff --git a/src/main/resources/assets/betterend/models/item/end_lily_leaf_dried.json b/src/main/resources/assets/betterend/models/item/end_lily_leaf_dried.json new file mode 100644 index 00000000..2e97ab98 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/end_lily_leaf_dried.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/end_lily_leaf_dried" + } +} diff --git a/src/main/resources/assets/betterend/textures/block/end_lily_0.png b/src/main/resources/assets/betterend/textures/block/end_lily_0.png new file mode 100644 index 0000000000000000000000000000000000000000..4e9c01d1c74642c29de953f592e3703c8e9ecbd2 GIT binary patch literal 1869 zcmb_d&yU+g7;X*ImKtf0qLBlw4%r4rN6%fhs*nac9_kG`+ znX4P?FPu7Y`h=!wr`l_+O?7{$xb9n0|7U)lQgypOS$jFtw381P*D>vb4c^Cg#hY8Zn&Pl#!b$K%@A zuF14-BH#B-XqlD;6ar+saZV>7&dx3(v_!_zFv&w1>qSHw$Wh)fl+t+$QBsACv$9O8 zVCIA-CaS?Ar5TX33YU!1;f$O!Qw&8U;yhDWRAG~W%w;x^cL-g5K0u&K+v!vshiZwU ziXzKbcT^f>K@LS{-Q7f(nKHf9}k2IdY9(U*)!S8 z$21iyeO0@o_{+SL{*3P2UA^!e$UWNznA?FW84iHgQ+>54_Z^Bc6m_)7{-FBOj~=lr z>;6miWpUVm#(kl7P}BGi`5eiebD@Xkvwwa4ulbn8-Z{6L`F9u2zU|v*RXb;|)aG3b zt5ZWgROgO}RjE>Sstn%0=Ph+2ZMIu0UGE+C`*gZ|{K+@28sB}qbnWzW?(r+;`P*mq zMvv_-Y4zLFTfaPVtM=<}f86`U^#_-~v_Jph>(QIhQ|)UHygGfiui5au$FJY`>Zez} eIr-@^?fc;qZ-0C7+|A;^Yp<@iKDqeXl|KP1cS|q; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/end_lily_1.png b/src/main/resources/assets/betterend/textures/block/end_lily_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ed01f118bbf87b2d24693cdc853133ec7cacc246 GIT binary patch literal 1911 zcmb_d-)rPV9FG*Mo*t+8;MIG$ki%bi*-U=yCK(!+x?Amn+bg|=))(t!W_CAplZi>T zyIaMxeK;tdNCjU+C~_}8`45Pm;LC9jB0hMC_^uD)!6A6!-8$J#V=KK{4i~bSB%k?w zKi}{7Gc#KY^DiGi_T(`^5RTX8s*C*oXnH+3$^TE^93p;uD4csW7KDc%Pp|ugk3K#r z2$P?9jpbyy{tCp*FCfBPTIl;BM+?GqxgR3DN)yqgEiZ7S-#))0i5_vJrD7e_!wPMC zbL$a3zdql<>#Nu%QuzgOx(_*lPZK2e{Z0_Wz9WrzAs?r&6-gXHl2u2VNdt<@^#!rQ zA}SUOB^j%RCYp9ZEdg6I&WajPO$C^Ws>?uypagYW%zhG&7Lg`gtiF`R;!lp$PLdER zO0U-|^z;IYT8e7hwgNOo(`1g2<3W(1z8u77b{VQP#*r5$9t*^j5xK0JI1*PnPQedz z+91x##0#eMQK+Z|kft;O5}f10ZqykCCs?5!>eC>JIabZFVVfl^ZnL{k=b!fl;H9nC z^B4ze@%=nRoXoEAG_rymh>jbBkSdEbX59$W*)=ZnOqxvyD-lHriyDk|b{n;@D_N{m z(#BZgvrAq;STBBV&m3As33Vh5Xh2qh4D5z#Kwv_kJr8sUz!+L*#A^=rLshk*YS6HG zoA*JvYY0lve}V~yO&0lx=j{2YMU^mUNn&0}SYaI&@xWZ2K2lMy!&(q0D8RH&-;&gS>p zl#?FP{BiV{HIp8S=uC^(?kN6J?xsIRYlo|+RtXSG*JXp~E-#tk%2pG(vWAFVLWTio zk#}<}Yrp!;j~3K(>)xaKj2^d9(4u??Rit~*=VwnEhN%zjN)s%m`aP)1@ zKFixVdc`;IbeNwS{2@PgXuwMq@l&OA^V=`@iS$;jI@7S;!+#Bj<%y@>*^+*`JbCHl z#HMog&gu2;)L>F5-WlHd{fS$JKmNS^z}Gt`%2)NTe*Ug|(SN#j>5-M;2Q5Jd?@#Sq zxpw2V>+eoaynW$*c>DUw#S1Gp-rRU>Y3=(T;?0fi?d^@NtzXKgPCT>x>kcbVee>g~ c%b!jNWw&td>X#on>Csr5ov(iO;_I7#10iB!NdN!< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/end_lily_2.png b/src/main/resources/assets/betterend/textures/block/end_lily_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9d947f8267b9d4e25484db49f02818ba9bf1475e GIT binary patch literal 1976 zcmb_dOKjXk7&akIX(2QsJwzZ{%i++fnf3S)ukB`ArMoFv2`6c~qM@hGdS-X6tRL9k z>?Ud@8Ua!{lmmzZ^gu(Asz^meIUrgPQ6xA3Dpdqj;!?z!lt(3kxWITHZi12$RjlOo z*#74KzW@KfnK?H$@@(hMCwDRo)0rL4jMIBpbUo5R|M%Yg8`0YiZ}^3PVIJ*{u7{Yn zFZ3`>$3-hQ5l$G->85KZ5O(tuc74M3Clp``vdAX2grGo8l>1l_3P~O&c|ihD(4nGB8r%GFl+DKleLQot$wi-1 zTqz7ao#(67YN9G7T))T*nx^qk`5Y>Pa^tK{oNMQPw7h0~vMiEiot%NC# zDs7}-dvRDNXqJfIeqB47f6BN3B&UMSJ zMvb*3v*~oy7?s_3!g8=%4fd~@Loz5NDNckU1Ofz5%L%d$lR6X+KuL$N0X1A~6{goi z1tBMhx~%H5v<^yLgHee76O2v0;QBVAIa@X=65ex)92-|sPrGH;r^Hm9R99gbde#X- ziZ<$7bg7~8+NhB#Oe3PCAm?QhgMwH{ zQbDo+G!0^)sFEs+O1_YUa%AYbNAzJUpxv8pE|KHp#pbANv2|PM$c*fs;>@Vegyz$D zZEaAGEipIeS4)Hjy-)KSG=WvVMOwS9_>136e}Ja$ub!w1#HvIKj-@;;nVbh| z0p)>+u%^)7Leej^vR|)0_M;SA_W{*6i({6MQzUc;<+%sXXKU_k2;C%~d+Y0e&4-Wn z&W6?af4i{$ZOuMQ+gX1_H}7Z|pBnTbK6i*iOXbs3W%tF?pVJfR(`;rir+&4veBkk= zv94`553a~J&z$OF|19l(>MZzhS9|v9Cyos*=H9s4w!Hk!JF6XM?H`s;9zCyqToo_P z_lSEsZtN{Ff4u&lGrE1H^ONP%6SIB%yYH`T@4K^O?z{6}OZK+Qce-zV)P6(zwRY*Z z@QA_O0><-;t7p{xC%eCG`#piq{WyL5)rH`(!WWf=pF6JZo1cHVcWL0-<(~9l&(!Ek zUoPQSMCr};_QkosuFSsGw(HP^g=e_e7Qf$f_u<=f$HKXvRu4vJYj$WP^TCl*v;P2M CM15QU literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/end_lily_3.png b/src/main/resources/assets/betterend/textures/block/end_lily_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6aff344bb81ee9292eb57cbcd49e38114371ec4b GIT binary patch literal 1801 zcmbVNZD`zN9KUXDUF*hLv`qcdm|9S}T%Nr2F3EPQ?OnGXcwOzXwdx1=BzbZdd&!d~ zY42KOup)x>!}g(LIQ-xT_n`x;4AH`vFX+@Eg--k;QyCS}Pj;h&DTwpQz1d1PiwC(p zNq*1o_xr!(pVx*45AAAxtT_^i>`D)$hRL}lJa#ma|Ms=Jker&_f#>{4QWf=*2q&ovL zZW86JfoTsNnI2U2=`me4=$-@A{-Qz%Y!pDMXy+YYDJJL=uR_-0ZI-4=kYFr9_lAPh zXl95?Vh>T>(HNt1B2UHTC>H}VFYcvyz{Ob*XE}iZoC0EsAXAkeP1HQYREARrD_Z0# zLFaDQdQk%)tG&c2O+cgP4=$|BER1&f&+E=Gs#111LPk1`&pCmRr!f0G2=^+?kPsKQ2 zE!0reGL=k*g^{QyM=Zy{1^=madr%4nC_(dp2Mh-oAgi3HfVcwqE+8lXl%W}HSmxA5 zD95QBuZWT&Y=n}oF<=1y6Kv>;i9H*Vm@OM-5$ifxnyO_|N#Z>Ah%j*{lw4#oO4{)Q z=;$b&O3){pW>Hgd~5~<=%L;$$=z1^i@leBA5Pxi{nn~kwzbjyCjIz7 z-B*&M=b)2CWP-AE7!MoHnsRB_e^;&aY~5U{!pX1;m$fNNE^2ccIfU9HQ}|}_?yF>i z|Cmnos?yg>-y{aNKfAO3#;pVI_WjnItZV4$ZrgLRYkYU}+riw!^DW|h$N0?YrH|Ts zb~ki(UA!7w3~pHmKREsQoCU`J;%>foV&#Xmj#G`X>nEO{SvYn4!k2Yt+q?EIte$__ zxwDPG{Xl%RYjNLg*Mu{S1va-)?M#ZTg9crpRJwkRNL@}BR@sD z>0j#ie0pW&%(2<`*Z%mu{;Rh0ud7Fgc5Zu%Za;SN>N54o<=Hn{?K9V&{ytETreEB5 x?$N#-Ew5}}SUxn=_5?Tf!s4ZG=bCPe%;I;NUSe0GQ+L9TRl0vLwa|Bb=5NfSOOyZr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/item/end_lily_leaf_dried.png b/src/main/resources/assets/betterend/textures/item/end_lily_leaf_dried.png new file mode 100644 index 0000000000000000000000000000000000000000..ce2aa8896e14fa654bc42595cebe33df0c256e22 GIT binary patch literal 2249 zcmbVO3vkn9950Ry7>^AHGUjk0;|*z&zShK*-L|p^SlHGgV}LA8zOFf%q-)Z(fI6T& zj|oF2AOgZT+zA2)CkHr?Hy(1xOXRTwJa-%qd5RuGMEtUK6+A@F-lh4H{J!7s_kZMn znO86}w{vV#tVW~hoS$bcg6DYkXdeUrQ|>=u;HiT*Z>+4*bWBi>Hk#!t5;dCWlf0u? zDYm^uvyz}?ILQgLLBR{r8clje(95usfPy$d882GUJN0`|gy$^i7^97_d9#6=&zs@{ z_9-JB?376?#i1EPk@O%92?U@pNKo*IG99#_&Ac>RtG96!X@)41ENG@Gh!oojkZj2Z z5Tn+Fv7|wVq)}SZL{K`z5JX3iX*iLFlX{FGX~IP7DJ1+up_-3#(M8sruok?spl(I+ z(l{On1hfIYR`QkMBt=m;p~H1L3?eXjvZydYOq5ew8LU8NeY{uUB@s~>8K>k|EGTr^ z5`y53(28<6O)z12kn!TAmQX`#26Ai!=k@zM&Eg!30}l{@sK^jYMzCJDq)4(``WNcR z<7Wh5YHhZN#&f+0LPSDVhE>2Y!U=gUT6RqK0=x*wlHbRIVHMD3sv3=#&h`ODk$etG z^0XGJpw%*xovjwej0_mVi<}gY2R^k2SQ!OaP#vKoFp|Is%0U`vGL6=o2NQalAX=a{ ziQ`?9pM{d7gVfPRk|uS}Kw;N#jKcgUm}6;|vN$>2pqEA;;gUMl z{L4(mi`~CmHCt>w>;5_Y_&?o;lf$|hu?)Zoilb^gxH@ZEN`wEiYR%7{noF&4IPBDA zWXi&e$eacur1rrn91{q&*Jxf@m2b^-n2!pJ8|AL0J6vEPDe7t&XHOpo4s)L^NS z7nC1AduQAVa+(~o_VPE4xtq`JNWXsLXv6OQ<6nKZc)}$nr*dY=#@Iu3PTkE1UspD5 zJ(9a*-nNg<_Bb?iLv-SqpMT3~`c;@e$C1(}fA)c1R+QOwe!|s_Z>Kz=U1I5jMtUje zxqf|?#vfrFm??xx{e;y*KX|E(m>etJ;tmg=QZF2;Yo@BQQfzWCgSF&BiWz#S0( zX;I;zFOhje6A#B9TH9}bVf6jLsY}P}ZnfFh74H>%yyxPBc)eF~%{VhXJs zsY9u?V#2cRVp;l68(k@(HJP1i3%X^*K1_0z)$P8Lv}&b&%l#2^Z{M8HjT$j?(GfSd zbJU?ht3r;F)GqJWjKCa&>GHf%aF41l?h`oh>krbpS+j-=jH`b0i)kGau2o<3eLlTp zUFhM%KGcbVjW>eZx9`Kpd`z`(JFI9STbYsDcmsKJ>E7cheM{Kx=RL2?Y3HamgnIWJ zII(6~)t{F_8G$wD6A{~zi{7Dus^awF8-`4MuU>nmI&M|VVasjTw_6vETyWI|%BSA+{~0Z&Gn0Bfk8~MXV KS~q2t&iD(Kf*R-m literal 0 HcmV?d00001