From ca769ebc665ac1b391713b2395b68fb4b399be1f Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Wed, 6 Jan 2021 16:05:20 +0300 Subject: [PATCH] Blossom berry --- .../betterend/blocks/BlueVineSeedBlock.java | 4 +- .../betterend/blocks/BulbVineSeedBlock.java | 4 +- .../blocks/GlowingPillarSeedBlock.java | 4 +- .../betterend/blocks/LanceleafSeedBlock.java | 4 +- .../ru/betterend/blocks/ShadowBerryBlock.java | 4 +- .../betterend/blocks/basis/EndCropBlock.java | 114 ++++++++++++++++++ ...geBlock.java => EndPlantWithAgeBlock.java} | 26 ++-- .../java/ru/betterend/registry/EndBlocks.java | 4 + .../java/ru/betterend/registry/EndItems.java | 7 +- .../world/features/BlueVineFeature.java | 6 +- .../world/features/GlowPillarFeature.java | 4 +- .../world/features/LanceleafFeature.java | 4 +- .../world/features/SinglePlantFeature.java | 6 +- .../blockstates/blossom_berry_seed.json | 8 ++ .../assets/betterend/lang/en_us.json | 4 +- .../assets/betterend/lang/ru_ru.json | 4 +- .../betterend/models/block/blossom_berry.json | 56 +++++++++ .../models/block/blossom_berry_seed_0.json | 6 + .../models/block/blossom_berry_seed_1.json | 6 + .../models/block/blossom_berry_seed_2.json | 6 + .../betterend/models/item/blossom_berry.json | 6 + .../models/item/blossom_berry_seed.json | 6 + .../textures/block/blossom_berry_flower.png | Bin 0 -> 407 bytes .../textures/block/blossom_berry_fruit.png | Bin 0 -> 218 bytes .../textures/block/blossom_berry_seed_0.png | Bin 0 -> 226 bytes .../textures/block/blossom_berry_seed_1.png | Bin 0 -> 263 bytes .../textures/block/blossom_berry_seed_2.png | Bin 0 -> 304 bytes .../textures/block/blossom_berry_stem.png | Bin 0 -> 240 bytes .../betterend/textures/item/blossom_berry.png | Bin 0 -> 370 bytes .../textures/item/blossom_berry_seed.png | Bin 0 -> 327 bytes 30 files changed, 257 insertions(+), 36 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/basis/EndCropBlock.java rename src/main/java/ru/betterend/blocks/basis/{PlantWithAgeBlock.java => EndPlantWithAgeBlock.java} (72%) create mode 100644 src/main/resources/assets/betterend/blockstates/blossom_berry_seed.json create mode 100644 src/main/resources/assets/betterend/models/block/blossom_berry.json create mode 100644 src/main/resources/assets/betterend/models/block/blossom_berry_seed_0.json create mode 100644 src/main/resources/assets/betterend/models/block/blossom_berry_seed_1.json create mode 100644 src/main/resources/assets/betterend/models/block/blossom_berry_seed_2.json create mode 100644 src/main/resources/assets/betterend/models/item/blossom_berry.json create mode 100644 src/main/resources/assets/betterend/models/item/blossom_berry_seed.json create mode 100644 src/main/resources/assets/betterend/textures/block/blossom_berry_flower.png create mode 100644 src/main/resources/assets/betterend/textures/block/blossom_berry_fruit.png create mode 100644 src/main/resources/assets/betterend/textures/block/blossom_berry_seed_0.png create mode 100644 src/main/resources/assets/betterend/textures/block/blossom_berry_seed_1.png create mode 100644 src/main/resources/assets/betterend/textures/block/blossom_berry_seed_2.png create mode 100644 src/main/resources/assets/betterend/textures/block/blossom_berry_stem.png create mode 100644 src/main/resources/assets/betterend/textures/item/blossom_berry.png create mode 100644 src/main/resources/assets/betterend/textures/item/blossom_berry_seed.png diff --git a/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java b/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java index de67fdac..5a2ae3f4 100644 --- a/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java @@ -8,12 +8,12 @@ import net.minecraft.util.math.Direction; import net.minecraft.world.StructureWorldAccess; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.FurBlock; -import ru.betterend.blocks.basis.PlantWithAgeBlock; +import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; -public class BlueVineSeedBlock extends PlantWithAgeBlock { +public class BlueVineSeedBlock extends EndPlantWithAgeBlock { @Override public void growAdult(StructureWorldAccess world, Random random, BlockPos pos) { int height = MHelper.randRange(2, 5, random); diff --git a/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java b/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java index f22f46f0..9df8ecc2 100644 --- a/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java @@ -8,12 +8,12 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.StructureWorldAccess; import net.minecraft.world.WorldView; import ru.betterend.blocks.BlockProperties.TripleShape; -import ru.betterend.blocks.basis.PlantWithAgeBlock; +import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; -public class BulbVineSeedBlock extends PlantWithAgeBlock { +public class BulbVineSeedBlock extends EndPlantWithAgeBlock { @Override public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { BlockState up = world.getBlockState(pos.up()); diff --git a/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java b/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java index 97ea66f5..4109481b 100644 --- a/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java @@ -13,12 +13,12 @@ import net.minecraft.util.math.BlockPos.Mutable; import net.minecraft.util.math.Direction; import net.minecraft.world.StructureWorldAccess; import ru.betterend.blocks.BlockProperties.TripleShape; -import ru.betterend.blocks.basis.PlantWithAgeBlock; +import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; -public class GlowingPillarSeedBlock extends PlantWithAgeBlock { +public class GlowingPillarSeedBlock extends EndPlantWithAgeBlock { public GlowingPillarSeedBlock() { super(FabricBlockSettings.of(Material.PLANT) .luminance((state) -> { return state.get(AGE) * 3 + 3; }) diff --git a/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java b/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java index b7e944c0..f4ddf4a6 100644 --- a/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java @@ -8,12 +8,12 @@ import net.minecraft.util.math.BlockPos.Mutable; import net.minecraft.util.math.Direction; import net.minecraft.world.StructureWorldAccess; import ru.betterend.blocks.BlockProperties.PentaShape; -import ru.betterend.blocks.basis.PlantWithAgeBlock; +import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; -public class LanceleafSeedBlock extends PlantWithAgeBlock { +public class LanceleafSeedBlock extends EndPlantWithAgeBlock { @Override public void growAdult(StructureWorldAccess world, Random random, BlockPos pos) { int height = MHelper.randRange(4, 6, random); diff --git a/src/main/java/ru/betterend/blocks/ShadowBerryBlock.java b/src/main/java/ru/betterend/blocks/ShadowBerryBlock.java index 2cca0ec5..06c06ef8 100644 --- a/src/main/java/ru/betterend/blocks/ShadowBerryBlock.java +++ b/src/main/java/ru/betterend/blocks/ShadowBerryBlock.java @@ -16,12 +16,12 @@ import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.StructureWorldAccess; import net.minecraft.world.World; -import ru.betterend.blocks.basis.PlantWithAgeBlock; +import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; import ru.betterend.util.MHelper; -public class ShadowBerryBlock extends PlantWithAgeBlock { +public class ShadowBerryBlock extends EndPlantWithAgeBlock { private static final VoxelShape SHAPE = Block.createCuboidShape(1, 0, 1, 15, 8, 15); @Override diff --git a/src/main/java/ru/betterend/blocks/basis/EndCropBlock.java b/src/main/java/ru/betterend/blocks/basis/EndCropBlock.java new file mode 100644 index 00000000..16d5e8f9 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/EndCropBlock.java @@ -0,0 +1,114 @@ +package ru.betterend.blocks.basis; + +import java.util.Collections; +import java.util.List; +import java.util.Random; + +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.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Material; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.enchantment.Enchantments; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; +import net.minecraft.loot.context.LootContextParameters; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.IntProperty; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; +import ru.betterend.util.BlocksHelper; +import ru.betterend.util.MHelper; + +public class EndCropBlock extends EndPlantBlock { + public static final IntProperty AGE = IntProperty.of("age", 0, 3); + + private final Block[] terrain; + private final Item drop; + + public EndCropBlock(Item drop, Block... terrain) { + super(FabricBlockSettings.of(Material.PLANT) + .breakByTool(FabricToolTags.HOES) + .sounds(BlockSoundGroup.GRASS) + .breakByHand(true) + .ticksRandomly() + .noCollision()); + this.drop = drop; + this.terrain = terrain; + this.setDefaultState(getDefaultState().with(AGE, 0)); + } + + @Override + protected void appendProperties(StateManager.Builder stateManager) { + stateManager.add(AGE); + } + + @Override + protected boolean isTerrain(BlockState state) { + for (Block block: terrain) { + if (state.isOf(block)) { + return true; + } + } + return false; + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + if (state.get(AGE) < 3) { + return Collections.singletonList(new ItemStack(this)); + } + ItemStack tool = builder.get(LootContextParameters.TOOL); + if (tool != null && tool.isEffectiveOn(state)) { + int enchantment = EnchantmentHelper.getLevel(Enchantments.FORTUNE, tool); + if (enchantment > 0) { + int countSeeds = MHelper.randRange(MathHelper.clamp(1 + enchantment, 1, 3), 3, MHelper.RANDOM); + int countDrops = MHelper.randRange(MathHelper.clamp(1 + enchantment, 1, 2), 2, MHelper.RANDOM); + return Lists.newArrayList(new ItemStack(this, countSeeds), new ItemStack(drop, countDrops)); + } + } + int countSeeds = MHelper.randRange(1, 3, MHelper.RANDOM); + int countDrops = MHelper.randRange(1, 2, MHelper.RANDOM); + return Lists.newArrayList(new ItemStack(this, countSeeds), new ItemStack(drop, countDrops)); + } + + @Override + public AbstractBlock.OffsetType getOffsetType() { + return AbstractBlock.OffsetType.NONE; + } + + @Override + public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + int age = state.get(AGE); + if (age < 3) { + BlocksHelper.setWithUpdate(world, pos, state.with(AGE, age + 1)); + } + } + + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + return state.get(AGE) < 3; + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return random.nextInt(8) == 0 && state.get(AGE) < 3; + } + + @Override + public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + super.scheduledTick(state, world, pos, random); + if (canGrow(world, random, pos, state)) { + grow(world, random, pos, state); + } + } +} diff --git a/src/main/java/ru/betterend/blocks/basis/PlantWithAgeBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java similarity index 72% rename from src/main/java/ru/betterend/blocks/basis/PlantWithAgeBlock.java rename to src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java index 06047606..cc649f49 100644 --- a/src/main/java/ru/betterend/blocks/basis/PlantWithAgeBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java @@ -13,11 +13,12 @@ import net.minecraft.state.StateManager; import net.minecraft.state.property.IntProperty; import net.minecraft.util.math.BlockPos; import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.World; -public abstract class PlantWithAgeBlock extends EndPlantBlock { +public abstract class EndPlantWithAgeBlock extends EndPlantBlock { public static final IntProperty AGE = IntProperty.of("age", 0, 3); - public PlantWithAgeBlock() { + public EndPlantWithAgeBlock() { this(FabricBlockSettings.of(Material.PLANT) .breakByTool(FabricToolTags.SHEARS) .sounds(BlockSoundGroup.GRASS) @@ -26,7 +27,7 @@ public abstract class PlantWithAgeBlock extends EndPlantBlock { .noCollision()); } - public PlantWithAgeBlock(FabricBlockSettings settings) { + public EndPlantWithAgeBlock(FabricBlockSettings settings) { super(settings); } @@ -39,15 +40,18 @@ public abstract class PlantWithAgeBlock extends EndPlantBlock { @Override public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { - if (random.nextInt(4) == 0) { - int age = state.get(AGE); - if (age < 3) { - world.setBlockState(pos, state.with(AGE, age + 1)); - } - else { - growAdult(world, random, pos); - } + int age = state.get(AGE); + if (age < 3) { + world.setBlockState(pos, state.with(AGE, age + 1)); } + else { + growAdult(world, random, pos); + } + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return random.nextInt(8) == 0; } @Override diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 49c79e41..5dc5a0c0 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -86,6 +86,7 @@ import ru.betterend.blocks.PedestalVanilla; import ru.betterend.blocks.RunedFlavolite; import ru.betterend.blocks.TerminiteBlock; import ru.betterend.blocks.basis.FurBlock; +import ru.betterend.blocks.basis.EndCropBlock; import ru.betterend.blocks.basis.EndLeavesBlock; import ru.betterend.blocks.basis.EndOreBlock; import ru.betterend.blocks.basis.SimpleLeavesBlock; @@ -220,6 +221,9 @@ public class EndBlocks { public static final Block SMALL_JELLYSHROOM = registerBlock("small_jellyshroom", new SmallJellyshroomBlock()); + // Crops + public static final Block BLOSSOM_BERRY = registerBlock("blossom_berry_seed", new EndCropBlock(EndItems.BLOSSOM_BERRY, PINK_MOSS)); + // Water plants public static final Block BUBBLE_CORAL = registerBlock("bubble_coral", new BubbleCoralBlock()); public static final Block MENGER_SPONGE = registerBlock("menger_sponge", new MengerSpongeBlock()); diff --git a/src/main/java/ru/betterend/registry/EndItems.java b/src/main/java/ru/betterend/registry/EndItems.java index 9743614b..44a10254 100644 --- a/src/main/java/ru/betterend/registry/EndItems.java +++ b/src/main/java/ru/betterend/registry/EndItems.java @@ -111,6 +111,10 @@ public class EndItems { public final static Item BUCKET_END_FISH = registerItem("bucket_end_fish", new FishBucketItem(EndEntities.END_FISH, Fluids.WATER, makeItemSettings().maxCount(1))); public final static Item SWEET_BERRY_JELLY = registerFood("sweet_berry_jelly", 3, 0.75F); public final static Item SHADOW_BERRY_JELLY = registerFood("shadow_berry_jelly", 4, 0.75F, new StatusEffectInstance(StatusEffects.NIGHT_VISION, 400)); + public final static Item BLOSSOM_BERRY = registerFood("blossom_berry", FoodComponents.APPLE); + + // Drinks + public final static Item UMBRELLA_CLUSTER_JUICE = registerDrink("umbrella_cluster_juice"); // Toolparts // public final static Item AETERNIUM_SHOVEL_HEAD = registerItem("aeternium_shovel_head"); @@ -121,9 +125,6 @@ public class EndItems { public final static Item AETERNIUM_SWORD_BLADE = registerItem("aeternium_sword_blade"); public final static Item AETERNIUM_SWORD_HANDLE = registerItem("aeternium_sword_handle"); - // Drinks - public final static Item UMBRELLA_CLUSTER_JUICE = registerDrink("umbrella_cluster_juice"); - protected static Item registerItem(String name) { return registerItem(BetterEnd.makeID(name), new PatternedItem(makeItemSettings())); } diff --git a/src/main/java/ru/betterend/world/features/BlueVineFeature.java b/src/main/java/ru/betterend/world/features/BlueVineFeature.java index d5c6b019..06883bf3 100644 --- a/src/main/java/ru/betterend/world/features/BlueVineFeature.java +++ b/src/main/java/ru/betterend/world/features/BlueVineFeature.java @@ -4,7 +4,7 @@ import java.util.Random; import net.minecraft.util.math.BlockPos; import net.minecraft.world.StructureWorldAccess; -import ru.betterend.blocks.basis.PlantWithAgeBlock; +import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; @@ -26,10 +26,10 @@ public class BlueVineFeature extends ScatterFeature { @Override public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { if (small) { - BlocksHelper.setWithoutUpdate(world, blockPos, EndBlocks.BLUE_VINE_SEED.getDefaultState().with(PlantWithAgeBlock.AGE, random.nextInt(4))); + BlocksHelper.setWithoutUpdate(world, blockPos, EndBlocks.BLUE_VINE_SEED.getDefaultState().with(EndPlantWithAgeBlock.AGE, random.nextInt(4))); } else { - PlantWithAgeBlock seed = ((PlantWithAgeBlock) EndBlocks.BLUE_VINE_SEED); + EndPlantWithAgeBlock seed = ((EndPlantWithAgeBlock) EndBlocks.BLUE_VINE_SEED); seed.growAdult(world, random, blockPos); } } diff --git a/src/main/java/ru/betterend/world/features/GlowPillarFeature.java b/src/main/java/ru/betterend/world/features/GlowPillarFeature.java index 1b51b7e7..d64c9cbb 100644 --- a/src/main/java/ru/betterend/world/features/GlowPillarFeature.java +++ b/src/main/java/ru/betterend/world/features/GlowPillarFeature.java @@ -4,7 +4,7 @@ import java.util.Random; import net.minecraft.util.math.BlockPos; import net.minecraft.world.StructureWorldAccess; -import ru.betterend.blocks.basis.PlantWithAgeBlock; +import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; public class GlowPillarFeature extends ScatterFeature { @@ -19,7 +19,7 @@ public class GlowPillarFeature extends ScatterFeature { @Override public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { - PlantWithAgeBlock seed = ((PlantWithAgeBlock) EndBlocks.GLOWING_PILLAR_SEED); + EndPlantWithAgeBlock seed = ((EndPlantWithAgeBlock) EndBlocks.GLOWING_PILLAR_SEED); seed.growAdult(world, random, blockPos); } diff --git a/src/main/java/ru/betterend/world/features/LanceleafFeature.java b/src/main/java/ru/betterend/world/features/LanceleafFeature.java index c2d3a388..97a63710 100644 --- a/src/main/java/ru/betterend/world/features/LanceleafFeature.java +++ b/src/main/java/ru/betterend/world/features/LanceleafFeature.java @@ -4,7 +4,7 @@ import java.util.Random; import net.minecraft.util.math.BlockPos; import net.minecraft.world.StructureWorldAccess; -import ru.betterend.blocks.basis.PlantWithAgeBlock; +import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; public class LanceleafFeature extends ScatterFeature { @@ -19,7 +19,7 @@ public class LanceleafFeature extends ScatterFeature { @Override public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { - PlantWithAgeBlock seed = ((PlantWithAgeBlock) EndBlocks.LANCELEAF_SEED); + EndPlantWithAgeBlock seed = ((EndPlantWithAgeBlock) EndBlocks.LANCELEAF_SEED); seed.growAdult(world, random, blockPos); } diff --git a/src/main/java/ru/betterend/world/features/SinglePlantFeature.java b/src/main/java/ru/betterend/world/features/SinglePlantFeature.java index 84fbe992..0fbc1021 100644 --- a/src/main/java/ru/betterend/world/features/SinglePlantFeature.java +++ b/src/main/java/ru/betterend/world/features/SinglePlantFeature.java @@ -7,7 +7,7 @@ import net.minecraft.block.BlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.world.StructureWorldAccess; import ru.betterend.blocks.basis.DoublePlantBlock; -import ru.betterend.blocks.basis.PlantWithAgeBlock; +import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.util.BlocksHelper; public class SinglePlantFeature extends ScatterFeature { @@ -56,9 +56,9 @@ public class SinglePlantFeature extends ScatterFeature { BlocksHelper.setWithoutUpdate(world, blockPos, state); BlocksHelper.setWithoutUpdate(world, blockPos.up(), state.with(DoublePlantBlock.TOP, true)); } - else if (plant instanceof PlantWithAgeBlock) { + else if (plant instanceof EndPlantWithAgeBlock) { int age = random.nextInt(4); - BlockState state = plant.getDefaultState().with(PlantWithAgeBlock.AGE, age); + BlockState state = plant.getDefaultState().with(EndPlantWithAgeBlock.AGE, age); BlocksHelper.setWithoutUpdate(world, blockPos, state); } else { diff --git a/src/main/resources/assets/betterend/blockstates/blossom_berry_seed.json b/src/main/resources/assets/betterend/blockstates/blossom_berry_seed.json new file mode 100644 index 00000000..64807e33 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/blossom_berry_seed.json @@ -0,0 +1,8 @@ +{ + "variants": { + "age=0": { "model": "betterend:block/blossom_berry_seed_0" }, + "age=1": { "model": "betterend:block/blossom_berry_seed_1" }, + "age=2": { "model": "betterend:block/blossom_berry_seed_2" }, + "age=3": { "model": "betterend:block/blossom_berry" } + } +} diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index b97b5efa..50a5a8d4 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -550,5 +550,7 @@ "biome.betterend.eterial_grove": "Eterial Grove", "block.betterend.umbrella_tree_sapling": "Umbrella Tree Sapling", - "item.betterend.umbrella_cluster_juice": "Umbrella Cluster Juice" + "item.betterend.umbrella_cluster_juice": "Umbrella Cluster Juice", + "block.betterend.blossom_berry_seed": "Blossom Berry Seed", + "item.betterend.blossom_berry": "Blossom Berry" } diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index f443c880..7412bf81 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -552,5 +552,7 @@ "biome.betterend.eterial_grove": "Эфирная роща", "block.betterend.umbrella_tree_sapling": "Саженец зонтичного дерева", - "item.betterend.umbrella_cluster_juice": "Сок зонтичного кластера" + "item.betterend.umbrella_cluster_juice": "Сок зонтичного кластера", + "block.betterend.blossom_berry_seed": "Семя цветущей ягоды", + "item.betterend.blossom_berry": "Цветущая ягода" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/blossom_berry.json b/src/main/resources/assets/betterend/models/block/blossom_berry.json new file mode 100644 index 00000000..d31374b9 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/blossom_berry.json @@ -0,0 +1,56 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/blossom_berry_flower", + "stem": "betterend:block/blossom_berry_stem", + "flower": "betterend:block/blossom_berry_flower", + "texture": "betterend:block/blossom_berry_fruit" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 2.25, 0, 2.25 ], + "to": [ 2.251, 16, 18.25 ], + "rotation": { "origin": [ 2.25, 0, 2.25 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#stem" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#stem" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 13.75, 0, 2.25 ], + "to": [ 13.751, 16, 18.25 ], + "rotation": { "origin": [ 13.75, 0, 2.25 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#stem" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#stem" } + } + }, + { + "__comment": "PlaneY3", + "from": [ 0, 12, 0 ], + "to": [ 16, 12.001, 16 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#flower" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#flower" } + } + }, + { + "__comment": "Box4", + "from": [ 5, 11, 5 ], + "to": [ 11, 17, 11 ], + "faces": { + "down": { "uv": [ 0, 0, 6, 6 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 6, 6 ], "texture": "#texture" }, + "north": { "uv": [ 0, 0, 6, 6 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 6, 6 ], "texture": "#texture" }, + "west": { "uv": [ 0, 0, 6, 6 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 6, 6 ], "texture": "#texture" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/blossom_berry_seed_0.json b/src/main/resources/assets/betterend/models/block/blossom_berry_seed_0.json new file mode 100644 index 00000000..7d0ca93f --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/blossom_berry_seed_0.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_no_distortion", + "textures": { + "texture": "betterend:block/blossom_berry_seed_0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/blossom_berry_seed_1.json b/src/main/resources/assets/betterend/models/block/blossom_berry_seed_1.json new file mode 100644 index 00000000..5b9545ab --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/blossom_berry_seed_1.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_no_distortion", + "textures": { + "texture": "betterend:block/blossom_berry_seed_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/blossom_berry_seed_2.json b/src/main/resources/assets/betterend/models/block/blossom_berry_seed_2.json new file mode 100644 index 00000000..78ed4004 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/blossom_berry_seed_2.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_no_distortion", + "textures": { + "texture": "betterend:block/blossom_berry_seed_2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/blossom_berry.json b/src/main/resources/assets/betterend/models/item/blossom_berry.json new file mode 100644 index 00000000..2363da03 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/blossom_berry.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/blossom_berry" + } +} diff --git a/src/main/resources/assets/betterend/models/item/blossom_berry_seed.json b/src/main/resources/assets/betterend/models/item/blossom_berry_seed.json new file mode 100644 index 00000000..decd9891 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/blossom_berry_seed.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/blossom_berry_seed" + } +} diff --git a/src/main/resources/assets/betterend/textures/block/blossom_berry_flower.png b/src/main/resources/assets/betterend/textures/block/blossom_berry_flower.png new file mode 100644 index 0000000000000000000000000000000000000000..050d776af6c0cd96653820db53aef7a9e8f13f29 GIT binary patch literal 407 zcmV;I0cie-P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0W3*GK~y+TrIRsA zLs1Y#-AX>06-a~8xxY$3hyDRI3MLeee=%ND% zgkbdX8vD!lupDe3miM<&84MrG=Hf>1Sx0A02Vixr8v+&yB*PKQbIynYRHC8@v%ohr zy2DL$04$Q-jQKW=xC1XK&q>1V(@mVci+n%e^zN*x?vE~;3)B&iyxdtTpFdx*?`-Wh z9oP*8n-L@xnQT`8jXE)Rg#L3c&bqgb;7iPJK^Jyltn=JoL7{HOxnM>V&^^1f!6ImV z&J!Kz#$rwrh~=jZqJS@vMeKaQ1o^Ck|L5PilwV?R?W^k*r%?a^002ovPDHLkV1fqA BsO|s& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/blossom_berry_fruit.png b/src/main/resources/assets/betterend/textures/block/blossom_berry_fruit.png new file mode 100644 index 0000000000000000000000000000000000000000..9ecf7a6741f4f53e2154d9ae17f77eade5831f8e GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!F*2_#}EtuWSi&PKijXL!NAN@Q}?y;;nU^e zJaWI2B^EkWFbaEY?r71FXlCfpKc~)?Cd@p;;mB<9^#^Cj9AGIjGHR%7j9@5Z^bqEm z%r)aeF7wCzwZFKY3bOV5|Np<;=p=K3egKmjuY_qsV`C#D!}IGp&tI9hgIv$x>FVdQ I&MBb@05VEOZ2$lO literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/blossom_berry_seed_0.png b/src/main/resources/assets/betterend/textures/block/blossom_berry_seed_0.png new file mode 100644 index 0000000000000000000000000000000000000000..e5183c01ab7d7fa5fa8255979d0f0d12be3ae679 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!E#R*#}Etu+aC%MVb>o#VWng)c zd|>Gr=Ku4r#vh;c%#epclkMT%#M1|*9C8E=3){@s$2C2@$k@hMby-#-eqZf51wEaU z1{-yF*8F_+l{=wug-{5?sootQS}tAqFTFg4dFG9$juQD2A3knyj@-e(%*^oDHc)bI T-&7cl#1?bP z=EMKUzok=JnoSiCitMfYI>|AA7qha*;*J>>5qxTF&lniPn9JIA|Lg1NoMgDfa*1Ja z{Jz?A4|Zt@t&?OaP)nVlsPJpnp(?hu?2QSAC1(>Dj2PtSU6=S=|9DD{g79ve+~mZh z$Q$*EiFIw;^X;8n4H)B?MV=l#FiZHgSn@Af9tjDCzWKS%UPan9hHD=nuJB^uU9qzD*Ev&8MIJ@;Ujme6)a zg$>p@KkEw1Q=Q$m6v?W&JK^Z5t=fgWP;boFyt=akR{03oz<_y7O^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/blossom_berry_stem.png b/src/main/resources/assets/betterend/textures/block/blossom_berry_stem.png new file mode 100644 index 0000000000000000000000000000000000000000..cc5ef7aabfbdcbff9128c33e0d6fc2ce4a52983c GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!B$Tf#}Etu+aC%MVWxK~PCoy3D ztKadCVGWKEGv+^h)7s9{yV=~>X=wmMpdN!Hi;=)7S4In7hMPYgd}MFio^Rh2+jv@F zkDkIYfu=YIa~9bE8EzI{hd$m3+7}q(m@k+%?`e{o%M#n*Z_M$)gdxpZvEe#vOAb3@ fQ``Z52?+)>M<2<_zITA`VPNod^>bP0l+XkK<1t9~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/item/blossom_berry.png b/src/main/resources/assets/betterend/textures/item/blossom_berry.png new file mode 100644 index 0000000000000000000000000000000000000000..e9676143da1af623b2f4c4eece59fb767bbf6aa6 GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc4eXvSjv*HQ$$$R;w`W#u;Pjfz%OUk)&A(s& zy=Sr)SWRBQm>;({MLOjzih}Pm~G|2uahH{*pT3*!m{BQ)5nHJMux`V>S-TdO@9Fl OCk9VfKbLh*2~7Z7VU4N) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/item/blossom_berry_seed.png b/src/main/resources/assets/betterend/textures/item/blossom_berry_seed.png new file mode 100644 index 0000000000000000000000000000000000000000..25dabe2edc103e40c2e775a3adf4b73628604094 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!8@KVjv*HQ$$$R;w`W#u;Pjfzt6|2lT72Hs z_;&7nm0u@0=I>%w?x@xLe4t*?u#jz~o3DX9%Lb_p);T}x3llvJq?a(VIIuO|IKkG$ zaL<87l4a5S7dgoV|D%rZ+biH@%;_x-o8 z{mJ<>k!cQ_j}G^5`~8~V_BX9z2w|~4kj3C(EYEMPhTSqyj>GA*hfDjse=F3*w0)~Gmtri27T-QC{V Uc2Oty0R73}>FVdQ&MBb@0K_SH)Bpeg literal 0 HcmV?d00001