From 0f36f048eaecc8f3cfc919f3ce294122deb89d1c Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Tue, 3 Nov 2020 19:33:54 +0300 Subject: [PATCH] Some new plants --- .../ru/betterend/blocks/BlockMurkweed.java | 34 +++ .../ru/betterend/blocks/BlockNeedlegrass.java | 41 +++ .../ru/betterend/recipe/CraftingRecipes.java | 1 + .../java/ru/betterend/registry/EndBlocks.java | 5 + .../ru/betterend/registry/EndFeatures.java | 6 +- .../world/biome/BiomeShadowForest.java | 2 + .../betterend/blockstates/murkweed.json | 18 ++ .../betterend/blockstates/needlegrass.json | 14 + .../betterend/models/block/murkweed_01.json | 257 ++++++++++++++++++ .../betterend/models/block/murkweed_02.json | 174 ++++++++++++ .../betterend/models/block/murkweed_03.json | 181 ++++++++++++ .../models/block/needlegrass_01.json | 6 + .../models/block/needlegrass_02.json | 6 + .../models/block/needlegrass_03.json | 6 + .../models/block/needlegrass_04.json | 6 + .../models/block/needlegrass_05.json | 6 + .../models/block/needlegrass_06.json | 6 + .../models/block/needlegrass_07.json | 6 + .../models/block/needlegrass_08.json | 6 + .../betterend/models/item/murkweed.json | 6 + .../betterend/models/item/needlegrass.json | 6 + .../betterend/textures/block/murkweed.png | Bin 0 -> 2223 bytes .../textures/block/needlegrass_01.png | Bin 0 -> 1751 bytes .../textures/block/needlegrass_02.png | Bin 0 -> 2101 bytes .../textures/block/needlegrass_03.png | Bin 0 -> 2015 bytes .../textures/block/needlegrass_04.png | Bin 0 -> 2137 bytes .../betterend/textures/block/twisted_vine.png | Bin 0 -> 1862 bytes .../betterend/textures/item/murkweed.png | Bin 0 -> 1921 bytes 28 files changed, 791 insertions(+), 2 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/BlockMurkweed.java create mode 100644 src/main/java/ru/betterend/blocks/BlockNeedlegrass.java create mode 100644 src/main/resources/assets/betterend/blockstates/murkweed.json create mode 100644 src/main/resources/assets/betterend/blockstates/needlegrass.json create mode 100644 src/main/resources/assets/betterend/models/block/murkweed_01.json create mode 100644 src/main/resources/assets/betterend/models/block/murkweed_02.json create mode 100644 src/main/resources/assets/betterend/models/block/murkweed_03.json create mode 100644 src/main/resources/assets/betterend/models/block/needlegrass_01.json create mode 100644 src/main/resources/assets/betterend/models/block/needlegrass_02.json create mode 100644 src/main/resources/assets/betterend/models/block/needlegrass_03.json create mode 100644 src/main/resources/assets/betterend/models/block/needlegrass_04.json create mode 100644 src/main/resources/assets/betterend/models/block/needlegrass_05.json create mode 100644 src/main/resources/assets/betterend/models/block/needlegrass_06.json create mode 100644 src/main/resources/assets/betterend/models/block/needlegrass_07.json create mode 100644 src/main/resources/assets/betterend/models/block/needlegrass_08.json create mode 100644 src/main/resources/assets/betterend/models/item/murkweed.json create mode 100644 src/main/resources/assets/betterend/models/item/needlegrass.json create mode 100644 src/main/resources/assets/betterend/textures/block/murkweed.png create mode 100644 src/main/resources/assets/betterend/textures/block/needlegrass_01.png create mode 100644 src/main/resources/assets/betterend/textures/block/needlegrass_02.png create mode 100644 src/main/resources/assets/betterend/textures/block/needlegrass_03.png create mode 100644 src/main/resources/assets/betterend/textures/block/needlegrass_04.png create mode 100644 src/main/resources/assets/betterend/textures/block/twisted_vine.png create mode 100644 src/main/resources/assets/betterend/textures/item/murkweed.png diff --git a/src/main/java/ru/betterend/blocks/BlockMurkweed.java b/src/main/java/ru/betterend/blocks/BlockMurkweed.java new file mode 100644 index 00000000..e4de7c34 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/BlockMurkweed.java @@ -0,0 +1,34 @@ +package ru.betterend.blocks; + +import java.util.Random; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.block.BlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import ru.betterend.blocks.basis.BlockPlant; + +public class BlockMurkweed extends BlockPlant { + @Override + @Environment(EnvType.CLIENT) + public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { + double x = pos.getX() + random.nextDouble(); + double y = pos.getY() + random.nextDouble() * 0.5 + 0.5; + double z = pos.getZ() + random.nextDouble(); + double v = random.nextDouble() * 0.1; + world.addParticle(ParticleTypes.ENTITY_EFFECT, x, y, z, v, v, v); + } + + @Override + public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + if (entity instanceof LivingEntity && !((LivingEntity) entity).hasStatusEffect(StatusEffects.BLINDNESS)) { + ((LivingEntity) entity).addStatusEffect(new StatusEffectInstance(StatusEffects.BLINDNESS, 100)); + } + } +} diff --git a/src/main/java/ru/betterend/blocks/BlockNeedlegrass.java b/src/main/java/ru/betterend/blocks/BlockNeedlegrass.java new file mode 100644 index 00000000..f5eeee98 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/BlockNeedlegrass.java @@ -0,0 +1,41 @@ +package ru.betterend.blocks; + +import java.util.List; + +import com.google.common.collect.Lists; + +import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; +import net.minecraft.block.BlockState; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.enchantment.Enchantments; +import net.minecraft.entity.Entity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.damage.DamageSource; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.loot.context.LootContext; +import net.minecraft.loot.context.LootContextParameters; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import ru.betterend.blocks.basis.BlockPlant; +import ru.betterend.util.MHelper; + +public class BlockNeedlegrass extends BlockPlant { + @Override + public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + if (entity instanceof LivingEntity) { + entity.damage(DamageSource.CACTUS, 0.1F); + } + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + ItemStack tool = builder.get(LootContextParameters.TOOL); + if (tool != null && tool.getItem().isIn(FabricToolTags.SHEARS) || EnchantmentHelper.getLevel(Enchantments.SILK_TOUCH, tool) > 0) { + return Lists.newArrayList(new ItemStack(this)); + } + else { + return Lists.newArrayList(new ItemStack(Items.STICK, MHelper.randRange(0, 2, MHelper.RANDOM))); + } + } +} diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index 6c67d8fa..9bb903e7 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -92,6 +92,7 @@ public class CraftingRecipes { GridRecipe.make("aurora_block", EndBlocks.AURORA_CRYSTAL).setShape("##", "##").addMaterial('#', EndItems.CRYSTAL_SHARDS).build(); GridRecipe.make("lotus_block", EndBlocks.END_LOTUS.log).setShape("##", "##").addMaterial('#', EndBlocks.END_LOTUS_STEM).build(); + GridRecipe.make("needlegrass_stick", Items.STICK).setList("#").setOutputCount(2).addMaterial('#', EndBlocks.NEEDLEGRASS).build(); } public static void registerPedestal(String name, Block pedestal, Block slab, Block pillar) { diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 33dcb32f..c6c5b3bb 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -29,6 +29,8 @@ import ru.betterend.blocks.BlockMossyGlowshroomCap; import ru.betterend.blocks.BlockMossyGlowshroomHymenophore; import ru.betterend.blocks.BlockMossyGlowshroomSapling; import ru.betterend.blocks.BlockPath; +import ru.betterend.blocks.BlockMurkweed; +import ru.betterend.blocks.BlockNeedlegrass; import ru.betterend.blocks.BlockPythadendronSapling; import ru.betterend.blocks.BlockShadowGrass; import ru.betterend.blocks.BlockTerrain; @@ -126,6 +128,9 @@ public class EndBlocks { public static final Block CAVE_BUSH = registerBlock("cave_bush", new BlockSimpleLeaves(MaterialColor.MAGENTA)); + public static final Block MURKWEED = registerBlock("murkweed", new BlockMurkweed()); + public static final Block NEEDLEGRASS = registerBlock("needlegrass", new BlockNeedlegrass()); + // Vines // public static final Block DENSE_VINE = registerBlock("dense_vine", new BlockVine(15, true)); diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index be1c65c2..d665031b 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -37,7 +37,7 @@ public class EndFeatures { // Bushes // public static final EndFeature PYTHADENDRON_BUSH = new EndFeature("pythadendron_bush", new PythadendronBushFeature(), 4); - public static final EndFeature DRAGON_TREE_BUSH = new EndFeature("dragon_tree_bush", new DragonTreeBushFeature(), 12); + public static final EndFeature DRAGON_TREE_BUSH = new EndFeature("dragon_tree_bush", new DragonTreeBushFeature(), 15); // Plants // public static final EndFeature UMBRELLA_MOSS = new EndFeature("umbrella_moss", new DoublePlantFeature(EndBlocks.UMBRELLA_MOSS, EndBlocks.UMBRELLA_MOSS_TALL, 5), 5); @@ -46,7 +46,9 @@ public class EndFeatures { public static final EndFeature CHORUS_GRASS = new EndFeature("chorus_grass", new SinglePlantFeature(EndBlocks.CHORUS_GRASS, 4), 5); public static final EndFeature CAVE_GRASS = new EndFeature("cave_grass", new CavePlantFeature(EndBlocks.CAVE_GRASS, 7), 7); public static final EndFeature CRYSTAL_GRASS = new EndFeature("crystal_grass", new SinglePlantFeature(EndBlocks.CRYSTAL_GRASS, 8, false), 5); - public static final EndFeature SHADOW_PLANT = new EndFeature("shadow_plant", new SinglePlantFeature(EndBlocks.SHADOW_PLANT, 4), 7); + public static final EndFeature SHADOW_PLANT = new EndFeature("shadow_plant", new SinglePlantFeature(EndBlocks.SHADOW_PLANT, 6), 7); + public static final EndFeature MURKWEED = new EndFeature("murkweed", new SinglePlantFeature(EndBlocks.MURKWEED, 4), 2); + public static final EndFeature NEEDLEGRASS = new EndFeature("needlegrass", new SinglePlantFeature(EndBlocks.NEEDLEGRASS, 4), 2); public static final EndFeature DENSE_VINE = new EndFeature("dense_vine", new VineFeature(EndBlocks.DENSE_VINE, 24), 3); diff --git a/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java b/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java index 91ac8ce5..a7dfa96f 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java +++ b/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java @@ -21,6 +21,8 @@ public class BiomeShadowForest extends EndBiome { .addFeature(EndFeatures.DRAGON_TREE) .addFeature(EndFeatures.DRAGON_TREE_BUSH) .addFeature(EndFeatures.SHADOW_PLANT) + .addFeature(EndFeatures.MURKWEED) + .addFeature(EndFeatures.NEEDLEGRASS) .addStructureFeature(ConfiguredStructureFeatures.END_CITY) .addMobSpawn(EntityType.ENDERMAN, 80, 1, 4) .addMobSpawn(EntityType.PHANTOM, 1, 1, 2)); diff --git a/src/main/resources/assets/betterend/blockstates/murkweed.json b/src/main/resources/assets/betterend/blockstates/murkweed.json new file mode 100644 index 00000000..40d3397e --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/murkweed.json @@ -0,0 +1,18 @@ +{ + "variants": { + "": [ + { "model": "betterend:block/murkweed_01" }, + { "model": "betterend:block/murkweed_02" }, + { "model": "betterend:block/murkweed_03" }, + { "model": "betterend:block/murkweed_01", "y": 90 }, + { "model": "betterend:block/murkweed_02", "y": 90 }, + { "model": "betterend:block/murkweed_03", "y": 90 }, + { "model": "betterend:block/murkweed_01", "y": 180 }, + { "model": "betterend:block/murkweed_02", "y": 180 }, + { "model": "betterend:block/murkweed_03", "y": 180 }, + { "model": "betterend:block/murkweed_01", "y": 270 }, + { "model": "betterend:block/murkweed_02", "y": 270 }, + { "model": "betterend:block/murkweed_03", "y": 270 } + ] + } +} diff --git a/src/main/resources/assets/betterend/blockstates/needlegrass.json b/src/main/resources/assets/betterend/blockstates/needlegrass.json new file mode 100644 index 00000000..d39ceabf --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/needlegrass.json @@ -0,0 +1,14 @@ +{ + "variants": { + "": [ + { "model": "betterend:block/needlegrass_01" }, + { "model": "betterend:block/needlegrass_02" }, + { "model": "betterend:block/needlegrass_03" }, + { "model": "betterend:block/needlegrass_04" }, + { "model": "betterend:block/needlegrass_05" }, + { "model": "betterend:block/needlegrass_06" }, + { "model": "betterend:block/needlegrass_07" }, + { "model": "betterend:block/needlegrass_08" } + ] + } +} diff --git a/src/main/resources/assets/betterend/models/block/murkweed_01.json b/src/main/resources/assets/betterend/models/block/murkweed_01.json new file mode 100644 index 00000000..3855ff83 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/murkweed_01.json @@ -0,0 +1,257 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "parent": "block/block", + "textures": { + "particle": "betterend:block/murkweed", + "texture": "betterend:block/murkweed" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 2, 11, 2.5 ], + "to": [ 6, 15, 6.5 ], + "faces": { + "down": { "uv": [ 4, 12, 8, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 4, 12 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 3, 15, 3.5 ], + "to": [ 5, 15.5, 5.5 ], + "faces": { + "north": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "south": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "west": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "east": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 2.5, 15.5, 3 ], + "to": [ 5.5, 16, 6 ], + "faces": { + "down": { "uv": [ 0, 4, 3, 7 ], "texture": "#texture" }, + "up": { "uv": [ 0, 4, 3, 7 ], "texture": "#texture" }, + "north": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "south": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "west": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "east": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 2, 0, 2 ], + "to": [ 2.001, 11, 8 ], + "rotation": { "origin": [ 2, 0, 2 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 6, 0, 2 ], + "to": [ 6.001, 11, 8 ], + "rotation": { "origin": [ 6, 0, 2 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 0, 16, 12 ], "texture": "#texture" }, + "east": { "uv": [ 10, 0, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 10, 0, 1 ], + "to": [ 10.001, 8, 7 ], + "rotation": { "origin": [ 10, 0, 1 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" }, + "east": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 14, 0, 1 ], + "to": [ 14.001, 8, 7 ], + "rotation": { "origin": [ 14, 0, 1 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" }, + "east": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 6, 0, 7 ], + "to": [ 6.001, 9, 13 ], + "rotation": { "origin": [ 6, 0, 7 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 4, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 4, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 10, 0, 7 ], + "to": [ 10.001, 9, 13 ], + "rotation": { "origin": [ 10, 0, 7 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 4, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 4, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 0, 0, 10 ], + "to": [ 0.001, 5, 16 ], + "rotation": { "origin": [ 0, 0, 10 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 4, 0, 10 ], + "to": [ 4.001, 5, 16 ], + "rotation": { "origin": [ 4, 0, 10 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 11, 0, 11 ], + "to": [ 11.001, 7, 17 ], + "rotation": { "origin": [ 11, 0, 11 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 9, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 10, 9, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 15, 0, 11 ], + "to": [ 15.001, 7, 17 ], + "rotation": { "origin": [ 15, 0, 11 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 9, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 10, 9, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 6, 9, 7.5 ], + "to": [ 10, 13, 11.5 ], + "faces": { + "down": { "uv": [ 4, 12, 8, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 4, 12 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 7, 13, 8.5 ], + "to": [ 9, 13.5, 10.5 ], + "faces": { + "north": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "south": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "west": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "east": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 6.5, 13.5, 8 ], + "to": [ 9.5, 14, 11 ], + "faces": { + "down": { "uv": [ 0, 4, 3, 7 ], "texture": "#texture" }, + "up": { "uv": [ 0, 4, 3, 7 ], "texture": "#texture" }, + "north": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "south": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "west": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "east": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 10.5, 8, 1.5 ], + "to": [ 13.5, 12, 4.5 ], + "faces": { + "down": { "uv": [ 4, 12, 7, 15 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 3, 11 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 11, 7, 11 ], + "to": [ 15, 11, 15 ], + "faces": { + "down": { "uv": [ 4, 12, 8, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 4, 12 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 12, 11, 12 ], + "to": [ 14, 11.5, 14 ], + "faces": { + "north": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "south": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "west": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "east": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 11.5, 11.5, 11.5 ], + "to": [ 14.5, 12, 14.5 ], + "faces": { + "down": { "uv": [ 0, 4, 3, 7 ], "texture": "#texture" }, + "up": { "uv": [ 0, 4, 3, 7 ], "texture": "#texture" }, + "north": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "south": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "west": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "east": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 0.5, 5, 10.5 ], + "to": [ 3.5, 9, 13.5 ], + "faces": { + "down": { "uv": [ 4, 12, 7, 15 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 3, 11 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/murkweed_02.json b/src/main/resources/assets/betterend/models/block/murkweed_02.json new file mode 100644 index 00000000..b4e66e5a --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/murkweed_02.json @@ -0,0 +1,174 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "parent": "block/block", + "textures": { + "particle": "betterend:block/murkweed", + "texture": "betterend:block/murkweed" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 6, 11, 6 ], + "to": [ 10, 15, 10 ], + "faces": { + "down": { "uv": [ 4, 12, 8, 16 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 4, 12 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 7, 15, 7 ], + "to": [ 9, 15.5, 9 ], + "faces": { + "north": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "south": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "west": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" }, + "east": { "uv": [ 1, 7.5, 3, 8 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 6.5, 15.5, 6.5 ], + "to": [ 9.5, 16, 9.5 ], + "faces": { + "down": { "uv": [ 0, 4, 3, 7 ], "texture": "#texture" }, + "up": { "uv": [ 0, 4, 3, 7 ], "texture": "#texture" }, + "north": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "south": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "west": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" }, + "east": { "uv": [ 0, 6.5, 3, 7 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 6, 0, 5.5 ], + "to": [ 6.001, 11, 11.5 ], + "rotation": { "origin": [ 6, 0, 5.5 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 10, 0, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 10, 0, 5.5 ], + "to": [ 10.001, 11, 11.5 ], + "rotation": { "origin": [ 10, 0, 5.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 0, 16, 12 ], "texture": "#texture" }, + "east": { "uv": [ 10, 0, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 10, 0, 1 ], + "to": [ 10.001, 8, 7 ], + "rotation": { "origin": [ 10, 0, 1 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" }, + "east": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 14, 0, 1 ], + "to": [ 14.001, 8, 7 ], + "rotation": { "origin": [ 14, 0, 1 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" }, + "east": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 0.5, 0, 1.5 ], + "to": [ 0.501, 5, 7.5 ], + "rotation": { "origin": [ 0.5, 0, 1.5 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 4.5, 0, 1.5 ], + "to": [ 4.501, 5, 7.5 ], + "rotation": { "origin": [ 4.5, 0, 1.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 10.5, 8, 1.5 ], + "to": [ 13.5, 12, 4.5 ], + "faces": { + "down": { "uv": [ 4, 12, 7, 15 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 3, 11 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 1, 5, 2 ], + "to": [ 4, 9, 5 ], + "faces": { + "down": { "uv": [ 4, 12, 7, 15 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 3, 11 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 5.5, 5, 12 ], + "to": [ 8.5, 9, 15 ], + "faces": { + "down": { "uv": [ 4, 12, 7, 15 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 3, 11 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 9, 0, 11.5 ], + "to": [ 9.001, 5, 17.5 ], + "rotation": { "origin": [ 9, 0, 11.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 5, 0, 11.5 ], + "to": [ 5.001, 5, 17.5 ], + "rotation": { "origin": [ 5, 0, 11.5 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/murkweed_03.json b/src/main/resources/assets/betterend/models/block/murkweed_03.json new file mode 100644 index 00000000..a2209221 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/murkweed_03.json @@ -0,0 +1,181 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "parent": "block/block", + "textures": { + "particle": "betterend:block/murkweed", + "texture": "betterend:block/murkweed" + }, + "elements": [ + { + "__comment": "PlaneX4", + "from": [ 8.5, 0, 4.5 ], + "to": [ 8.501, 8, 10.5 ], + "rotation": { "origin": [ 8.5, 0, 4.5 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" }, + "east": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 12.5, 0, 4.5 ], + "to": [ 12.501, 8, 10.5 ], + "rotation": { "origin": [ 12.5, 0, 4.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" }, + "east": { "uv": [ 10, 4, 16, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 1.5, 0, 2.5 ], + "to": [ 1.501, 5, 8.5 ], + "rotation": { "origin": [ 1.5, 0, 2.5 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 5.5, 0, 2.5 ], + "to": [ 5.501, 5, 8.5 ], + "rotation": { "origin": [ 5.5, 0, 2.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 9, 8, 5 ], + "to": [ 12, 12, 8 ], + "faces": { + "down": { "uv": [ 4, 12, 7, 15 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 3, 11 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 2, 5, 3 ], + "to": [ 5, 9, 6 ], + "faces": { + "down": { "uv": [ 4, 12, 7, 15 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 3, 11 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 5, 5, 11 ], + "to": [ 8, 9, 14 ], + "faces": { + "down": { "uv": [ 4, 12, 7, 15 ], "texture": "#texture" }, + "up": { "uv": [ 0, 8, 3, 11 ], "texture": "#texture" }, + "north": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "south": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "west": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 12, 4, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 8.5, 0, 10.5 ], + "to": [ 8.501, 5, 16.5 ], + "rotation": { "origin": [ 8.5, 0, 10.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 4.5, 0, 10.5 ], + "to": [ 4.501, 5, 16.5 ], + "rotation": { "origin": [ 4.5, 0, 10.5 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" }, + "east": { "uv": [ 10, 8, 16, 13 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 15, 0, 10.5 ], + "to": [ 15.001, 5, 16.5 ], + "rotation": { "origin": [ 15, 0, 10.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" }, + "east": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 11, 0, 10.5 ], + "to": [ 11.001, 5, 16.5 ], + "rotation": { "origin": [ 11, 0, 10.5 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" }, + "east": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 0, 0, 8 ], + "to": [ 0.001, 5, 14 ], + "rotation": { "origin": [ 0, 0, 8 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" }, + "east": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 4, 0, 8 ], + "to": [ 4.001, 5, 14 ], + "rotation": { "origin": [ 4, 0, 8 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" }, + "east": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 7, 0, 0.5 ], + "to": [ 7.001, 5, 6.5 ], + "rotation": { "origin": [ 7, 0, 0.5 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" }, + "east": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 11, 0, 0.5 ], + "to": [ 11.001, 5, 6.5 ], + "rotation": { "origin": [ 11, 0, 0.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" }, + "east": { "uv": [ 10, 0, 16, 5 ], "texture": "#texture" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/needlegrass_01.json b/src/main/resources/assets/betterend/models/block/needlegrass_01.json new file mode 100644 index 00000000..cebe68e3 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/needlegrass_01.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/needlegrass_01" + } +} diff --git a/src/main/resources/assets/betterend/models/block/needlegrass_02.json b/src/main/resources/assets/betterend/models/block/needlegrass_02.json new file mode 100644 index 00000000..78d943f4 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/needlegrass_02.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/needlegrass_02" + } +} diff --git a/src/main/resources/assets/betterend/models/block/needlegrass_03.json b/src/main/resources/assets/betterend/models/block/needlegrass_03.json new file mode 100644 index 00000000..4cb0b29b --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/needlegrass_03.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/needlegrass_03" + } +} diff --git a/src/main/resources/assets/betterend/models/block/needlegrass_04.json b/src/main/resources/assets/betterend/models/block/needlegrass_04.json new file mode 100644 index 00000000..2153e053 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/needlegrass_04.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/needlegrass_04" + } +} diff --git a/src/main/resources/assets/betterend/models/block/needlegrass_05.json b/src/main/resources/assets/betterend/models/block/needlegrass_05.json new file mode 100644 index 00000000..159c4a9b --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/needlegrass_05.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_inverted", + "textures": { + "cross": "betterend:block/needlegrass_01" + } +} diff --git a/src/main/resources/assets/betterend/models/block/needlegrass_06.json b/src/main/resources/assets/betterend/models/block/needlegrass_06.json new file mode 100644 index 00000000..8078115e --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/needlegrass_06.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_inverted", + "textures": { + "cross": "betterend:block/needlegrass_02" + } +} diff --git a/src/main/resources/assets/betterend/models/block/needlegrass_07.json b/src/main/resources/assets/betterend/models/block/needlegrass_07.json new file mode 100644 index 00000000..e1b35233 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/needlegrass_07.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_inverted", + "textures": { + "cross": "betterend:block/needlegrass_03" + } +} diff --git a/src/main/resources/assets/betterend/models/block/needlegrass_08.json b/src/main/resources/assets/betterend/models/block/needlegrass_08.json new file mode 100644 index 00000000..077012fb --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/needlegrass_08.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_inverted", + "textures": { + "cross": "betterend:block/needlegrass_04" + } +} diff --git a/src/main/resources/assets/betterend/models/item/murkweed.json b/src/main/resources/assets/betterend/models/item/murkweed.json new file mode 100644 index 00000000..dcc908dd --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/murkweed.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/murkweed" + } +} diff --git a/src/main/resources/assets/betterend/models/item/needlegrass.json b/src/main/resources/assets/betterend/models/item/needlegrass.json new file mode 100644 index 00000000..2d492955 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/needlegrass.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:block/needlegrass_01" + } +} diff --git a/src/main/resources/assets/betterend/textures/block/murkweed.png b/src/main/resources/assets/betterend/textures/block/murkweed.png new file mode 100644 index 0000000000000000000000000000000000000000..977b6f481dc79da8cd5c6cbced100850f165e3fe GIT binary patch literal 2223 zcmb_edu$VR94`dMb8$Ef?{K-Hymq~JuRT|>Yk>{usIb5m5q7=%b-k_aop-mjLu1B( zg*j#>1n`9pVG>ACqlkpTKo~(mT!w!TU3e@pEI159A{jow-*s&TGmsFQT<>?k`}{uN z*XQ^BU7fFBe)`CXBP|w7dVZc~3A|^R*YGs>KlSEa0p3QadBwWLGAh%&23g*DZ@k5l zwnHu~GK##5cu@&k1xfJ(Yb>lnw8fG$C#DKwIWQ1ED3v2l^m@xt6pLxM0c1SA#?MRY#qMB}_X9GlZPio_vCxf6An29YAK z4{<9RKv=5{6G?_bIER(A5e|yUMks>haDu~08Y4)au<^75N&HY~O_Kur63@JZE%@X_ zgNC8WS1JrA z3O(%)A*`loBYGlDFkyI1P;t^qm?6c1l9)SzN0dQf>l9I4l-XjI;<0l`qT zLPZHB3*}3)Aa1u=7&|g!xg3#{s6Nv)lvo2if&rW;MNkArk{Cf3l6Icrc$S+@&^$r( zL%mQ6l3)k}fmxa-?e~EdNe)!~CsY#ofTD#3m?$|clmc9hl*X-jy?lN|H-v}?@;y!z zx@whWi4QO=Ya;-GIV6t5Xo<054$2{7fRF+#p!|RhkjeEPMXWH3Xs++qv!sZSBb7Ry z^|K@+v3AT)GZH3pjDQJ*$Y5-M^7|#$#`y_Hl5Mdj!!0F*?qxN-k{~05iJT;fm_(5* zMvIIe^OFt^BLggB4+v6#q9D&dcHK%y(Y%TTb55Irjth&=lXY0Vs>Bvq3SLf(LNXH9 z5-*6R+?}Xs))`1>Vp<*`PmktNKW#J!An8Mj-w)H3fDsim;3|bVeH4A+5At6ZDj)7W zY)qV8paCY(9D|7>Bf^o5!$ihrXV?H|v$H}n`hmQsp?b-r8Xwd9L~_NT5Ge()gW~Ap z$Ma~aeQ-7I+g<-_Jh<6A`=y5eTZQp=_w-p<&iE8;-sUiMYQTroxdS3FRT?~1uAmEj z7R#Xh`5srH{mhn4u7cywk6(XjbaS4(;#lodW84<^@l8Xcy@M~-O!^d@opQK(cXj$G z_lCBNyu6KMcH04B`vLK8-B@28RsY?e+gpz+tyPO=uGi=7?C_oRk2xF2bY&2)y>YPf zm%R&`YrZO}{vlMGyQAsOg{Jd8drtayoUav{3TKgf+qIHT+q>=E8M#fDuJ`eD(oS@#?IqJcy8ZjFS9UdKZ*E%o z$qD9cR@$|SziMv(JmK@-ep?)QTR-n?xt}h!q{u>O0E;}@>>FDOZv1_jydtdUor_B27NV;>^w?)_Hf8BlablcErnG?76 z9J*G&rZ!N#l`lDFUp!l-TUR}uLG78+n3+Wh6K-|fxY||qzV*qp&bL~9FZN{&Ke#Tu zvaGSK?bNMdYs7glA6B(UwZ-_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/needlegrass_01.png b/src/main/resources/assets/betterend/textures/block/needlegrass_01.png new file mode 100644 index 0000000000000000000000000000000000000000..ae5a02f82935f9da9c293497c70261d34a8d2c4e GIT binary patch literal 1751 zcmbVN4NMzV96t;)#E`I!$%ZnI107~-?|Lo$c%e+z0xhl#x^8sS7_N5@deZi8cLyy5 zmpPokwz{av7Q}@mxR^;oV$7BhqT2+QDeeQ6EhG@*oQWAxg1G6TfbUA%7&CS5l6UXD zd%ySlfB&z$rn)jSBR2!XuuP}J?nZN#I?~h7`^otw22GEMj$JZ_J-S*QDcIZZti`a@ zdEVnyysoW)6@prZ6MRq`35p1fVI`X*BEvR81^2;5K4c|khtCo?&smAOVi)BSZP3p< z+9bHWt=hx3HL(_s*j$R2L;xZPLWRL2!9Yj`5i1en1!%2)CJ8(SQJSnonJN(Xx@vHn zAVIuXYt*nh1C5(3TAh)y(1uMoP3cS|Wg>NY4W$E=5$G*={2`DuiE99EdqrFp+F1#| zqKJSb!{M+ttk()sBdN1kEF?vfG_64hjocbin207M7bF<$P-Z1wRCpnTtBj0KXjZHQ z(sbE`pqQi$$#FL!hmjFRBz0O!H7N$<*d$JDmI5*1981Cg48o8iBdjioMP72blJI-d z27^hotdzGPjpDZ56D@mMMM%1#EHq0jEN?*)3lfTnenAmrzwi%sB#)EUh`=U6MiC^B zAOsSDs!6cmHk%q4GhS53hd3cDKcfnY-+^{UfmVX1XiB5gX(+u%X8}3`pbZ--J)o#% zs0*b6$0*GGfd!6lX#Gzp$AShy3Npx1e2{5`q!?<9Nprb?GbAfah=oqOl|ZU$d7c9X z)?zYI#jK{7^BFYIXs~F^z6QO<2lbr6X!aRQ27ThbU0|ElASUi}|MUJfiAP1m1Rk6x z86;p60)pfcIOJu$n!>SE0uEkA@oJ41#df$Sz6$VoEPDXMstIl-ST(YcBjTU=2lmV| zZP*VH>A!?~872!2N|=#gStIh|{bUr0^e5G7TsDRLyOpuCzf^7lj@p5`O!gtPNp>PIW%TEvW^c^3PFHbggrSCoSf_CMhPjB`+3s3#9k4$9>6=%Q6 zN!`tY3puym>w4&|-W?^Af83IXrk2uQEwEh=9v;=c`P|Jb?N8nKUMd@&z80a@*3&&# z+e<4y@cx3&Ekv)+?6|V9w+_%#Gq>@@vJKvjx{b%iz||jH=APYGb@J!e&e@of^e>3`hn1u47j|~|4OMfIC;G=7%(a(_Gdf4i$E)w;T^z^;y_eEDN6vdQId5*uaNfjB zb9CLumi0%nyX{@QD>Du#<9FNdOq@G7a;*OJ?pIbIKNuP_506d;juvh^={~cRV{ZN7 U)R=4Pef8JlEU&f?ZmHk@CxVh+Gynhq literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/needlegrass_02.png b/src/main/resources/assets/betterend/textures/block/needlegrass_02.png new file mode 100644 index 0000000000000000000000000000000000000000..6b4e6e534d3b2e4e30a8c0f0d4443e66c77990e5 GIT binary patch literal 2101 zcmcIlZEO@p7~bOt(Q5gKC254+!b2Vqb)r`5v-k^nQK?>cDK7* z?pk9^DxlR66QdZEh{PX|pdgTxAfjzVG%-Y=Bt}fp#1E(#8&mxOh&p?{JJA#*Bwn(& zv$M}U@B2RQvoizDt5#H2++RUaRAobbVl}zX@~^w5lm7=M{siQ9w_U%^rKo%E^REE) z+Rkcl3Iay7OVcQEiQ zCuLcgQlpwnEOb2XH%6gr)*2?Va_%F3pyC>w03MDqA}{i+Ah5iY5>!o)HBny3OB&Bl zLX*S_2zX#ha9ES2e}FAyqM2GjL`32{Rr%8*op zhJiGIR9OjyR8~-Aft3UqusXniRTLabgS04zBv4wPuwakhM1TFHpOFO#M_D=z@-U>P zC6(1BMPMU97Fm@SbrxY6@<8H6Sx`%CO^!i6DUi95)z1nMMj5J+2p@uM2%xTe7R{f8xmMcC0SCuAiKe&XFYadfyI|9;vkyxME0T^_ zsH;4iMlxh|g%{W`(DevXF;o;h&dCOas{+<85>=h|Czfn3PaE5Jb=r~>yDrV`-|!`Kq`&6Dl`StYKfgawW29f2e*V;! z%TLu_P{(&Z`AXg93j;Izq(1_~7eC)NYOZ+W;#kjiTysf;!j8uFg_Lq{Jo)lN11GxQ zzAV`XwoF`UOpbh-KD_&5J+^n{w%>Pr;~ZTYy!Js;OV#WjM^7FYdiLC_lzC)*%bY8} zHjY=BmFHHTmA_vvJ>C>JxFLv-w|`X8w5N6N>B0Fh{QB6KS8?*&gLJnv6r1HOomV?= z#@9o2EvJ9$o3nN1C*6pzwjcZA(4+5ohkuwj+P1xJ&&XJC*TmxSp|{RFHz)ARbt`pb zKs?8R3a5I;&=s)*EEd-0w)M8L9qUe9l$DU`<+dO1olnOas$h;>5vf`&QuU%h|;fN@pma(o1YF4cg@Y~kD~uT(RROb(ZD8QXzRuzU+kqLj(B;A_&B%Pq7Y zB&Ug@hHq=4{oIU;xgqR3Q=W;F)5KzDQ>{p*YKnDx#f+k$2|-K$ICfRshOz3 zCJP;phlx??t`W;dPQ||~G}PFG6EMIrMgRg}d7cGgj@NWv(gmp-h&ljuXoi#mf&p9; ztP=b`zz(wVGye%irk;1aG9-br%CLYr*DlnoWioo&_5)~}IGuStQlbE1mW%=mRLNvj z10q(CWXZ$|fU4GFd%&~Ek%Fbwtf4AI7$s9v6c9DpC^94#%aTTT@*-(9*URr$z+ay#T=_-4213O4Z`XQa@mSo{zOZ*4OcPVW98# zw&XM86N`nFuG^Qk9ho18on5b8LC4X~;XSF(^4%A{{Plh1?tM>g`Qsh?my1_7MW~;9 zdQWdpep;EsW23tdw0*B0J$d=tbIZp+wibTcdm#HPevuYt4;|dUKX-KTp)9y%(_z?^ zelB%Z%AJqyNcOMve4TsqqW#sWJ5N72_tx@n($k$UeKgrIXDyT-q3G#{M?Qaj`QQg9 zE}tqN{&D-EGrcEvEv@v7o&O?xY4L`>?bM^6T$sG=n;T8%yGr-Fk*mkf?4G)`x9_PJ i=4twDd%}C=$Q!fN&X@gjZ>N?(*n-o^Y~tj=`21ger;#K8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/needlegrass_04.png b/src/main/resources/assets/betterend/textures/block/needlegrass_04.png new file mode 100644 index 0000000000000000000000000000000000000000..5e31a9fb6fc8d286fcc652e99456aa236a794e29 GIT binary patch literal 2137 zcmb_dYitx%7~P__NCN>8(;(4dY6!*7&a<;S6Sh2d3oT)5g(3xn^v>M7yF+(prZcnM zZ6S&XKWsuE4T|7{2&4^&s3pc|0}7gu$}1W*8eYamg(xWou%d~0XJ3LTNQj%v&YhWa z&v(A>JNMof8tUhc9yM{4$Kx4YR~uS@?_=F-WHJ7K^zwCpZ}*$EOKgv)bi8{NdA7Y; z=J6E2p*1!+P2u^nY9zb>8Vd5J6DCG`Jkw{SO`x_Qhfq*d(*xvS-$x{&!2r3qD$In< zAc|?V9Tr;HQQxR`w5Sp!XH*l@(=sMVAO{fXL|nJ!bb!q8%6RO)rb!|Laasc8EH@z0 z6mB4bhJ}bKuSlt^z!5&l%ZiM|36%uLus)jc(JW6ftjvfqFA=#PiKAICA}C^^ss)^xwBniIP^D2EC6Mme7|Ry0xJu!00X{5k zB2hrwPE8wDl*?^cwB6WlB6D$%nC9mJkIbk!(^dh zYy}7$FdUfUWlp>aY(Op2{-02&$`Qj#09+_70iuXD^=KwqI4sxcwgYq()rA5img?0s zDD#3CfdEud3Kvl+RuC8pD3GNTC@>JRQ1vNUwRnEWP?K&G-T7HRLqo+Jh0@6?qgF`~ zUZND<&r&`haFoPw3I&m%GJt0|ftB)Vp0G5$q(J;eR#z3ojDjlpd`y)}RY66dkSIu$ zUy1OPf_Ny1ens#JJW2c$H)zBSD{MeqbKW&{##nN#X5;R)=a$Gq)S4T`H6r6B8K|z^ z1ElKq89_4lS{tTLccv&yn~EV!dYk5FVYU%*Qous9qPV7a;xGDE`fbp5d-Wm@k)Kx} zr799bMWCQkil1RA5h#ieN=Wtl*?jiHsuyK}&%5z1)#r+<#(*A0cn77)yU*v&Tzl(o z+_bv>*L-Mq@61|_{v; zR{hr7via1vXV;_sM~`hCJhtxTC9C)EeY^MieJe(6JQ6&wt*%Gh)=P1bAL^|9$3-ygVq1$SDndtQhGM<%)aB1^0h=7EFRc?vgdGd(TP(RyH8wjK6~=P z-GhgkKfZkJ^rztG>2pi9E0ssfCTu*iGxpxn?%HkL^trBPVdAeH2d0#6Sver=`>B0h zXzz}x^GW5%0K5HU6nt1cY0RRY!J)oAKmJ)wKU9iJHYDCZb$W1U$&_iG^*x_}vcHy| zzuIv+E?#itL;S^|RR^E;l64QD(uePDe?8cAX24%u@lJnNb${!mchBfGZ#^}>?@axo zuXolIZEEXV-kVsqW|ur+r7&^cqRvZKJJy%ov#fJmW&iax&rLfwvh@ox_)T)TJZa4L ZC2ilGwO)LTXmt<&x|;gXzS+%d{|2yH)&T$j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/twisted_vine.png b/src/main/resources/assets/betterend/textures/block/twisted_vine.png new file mode 100644 index 0000000000000000000000000000000000000000..6ddca5b6d2a161765bc0a2bee538702caba1e858 GIT binary patch literal 1862 zcmbVNe@qis96$WQr2ZHpPU6fw&&g0}@2;(dyHEsM954$0V2aKkT<>1#L3?-HU1>ok zPEm0hEDOv{unbESq$scnd#J+L8dXr7&nb`4u3m;Fs2K8SK4M-+~&OG-Fxre z=Y77vzqesd;p-!H<8=svjLgfm&x3QkHipH*_r&}C44mSm+(in43?HM77-ZW=NeD9J zK3`m-mN*J%R`ePePILl8z$-yCf@I7LNDNy6RMZK|c)^O@2_D8!p0i>LXE+FlWCLzK zw?+o@YYL0mnhKWUu$h@?Mu3I{UZ65)!0QndI$*^@yfj>EpK%NgLDUK>maPdyOB{1h znpu_M0BjKch&`b&eIW~%ue6lAboMUm|0bU@e3dE98EcBAY5rsdM z*6WR;6*Z>{Y81BZsc5CRS_1eypol)11vynv;^c^8l3P?o#V!7W9ns^cH4<%;0i%j? zu_$^XftnLxL2WiIFzIN@LSEoRzcN)56utxOj0&unkuVZ^lGGEXVv?dwM%tJ*oiNb^ zF#vVIRNxquc{Z@f@viFsgmNtH5@jy~9mRW@GJs1$SxB10LFWmI$_OmTvs*E!s)6S@ z+TwDt6hWoyEl!JBPXV(@&roS*z0+bL(@iEWjWjZm`*xA_X+ezK=lc zCmJN$CVE8KA#%{mCM|_SsYK`U3XE5ExG3g>%J9m=qoM4f8CFYhE5>S(1soRs%s;nh z259|m07?HP+ygL0bg6zu2H9oMi_el#IMg54s&T*+{O?wV&i+!l5jboI+A`XQ;3nG1 zfB@T<4ExluQTs~~B&ILVo?V=N$~QmQRXI1lHM`cFP~WiPlUH>^6K1vDOVYJ}8w?D3 zuQ21C{9U7GB~EMlc+&0O8&6hL$@TsB9iMk}cWqzP@o1ZGRl}wJhqalLw&s8M&1JOX zd}{am$FKPO!Hdf}rv)1G_YCS>vZ)|>%!u{2yMc^LDh-^;n|Hd+x`vddgo(&ixjBDN zLb-YT`JA{|_kjz)^gf=Nuwm8W_LUd;A7Z+$b?iRT$R7T&?YF%psq0>9Tw8PSm1*5` zvoe#^;L?r9uN-Y15j%L(arShNx|%#K9I$Q8pEA69;h^U238_gtZdC;{x?QI938NBq zYXfDd+tN~3LG0*eI+v`De`A;N&4bHcyzy}H_0#2FWWHM$a~D`zrnE0;OkIG+qx;V_ zwtTlPY2%uGTMCljl8GW~}+#9y$NY>AZjX4kcY9EZvifcNx_H6ms zF&l_-ZgH}w8q8K`eM zb=BwEeD6?6>Y=wf&-9eit$WXwPg#2M0T@Td9eexc`rf+BHaoMt`9$84(hpukEG;A3 r7fk=-$&;^pRA*7v!DUU~30{y~#S literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/item/murkweed.png b/src/main/resources/assets/betterend/textures/item/murkweed.png new file mode 100644 index 0000000000000000000000000000000000000000..f63548762a169647a176f3c7b0d921cfc18d3c1c GIT binary patch literal 1921 zcmbVNeN5bB7%xK@AIF?x1U3_DFD5fvuV44o!U^nd8yF4=BZDPV>9y}2mAkgK}k zdw$Qy@9EPw>g)Cu5hTCRJTs7yaaO+fwI%6i?vZslBMmtP@1G%1nD9u1}7))a#e=z=DxhNQ@-$;bzkcEf|g zNLN#csA*bRPnHQ5jEM6pLD@(%r36qE(m1tU3n!e50s+Dx0%SvnSSpQ$Rr34O@HJ^8 zku+L2_C#Ss$=udN>x~^MAR2(Kv}*#`6NMhFsle1$#ZdHC5$KpJGA1UQ-x1x}!;wMJ1*`Z8}QY03UAv4@Q$TiBl9#GL4j*bGSL0-AOVWNv=Zu zuoXn!;MWARoWuSvup&yqj{k*<0vA-Y2oDP-MfeaPR5_IJ=J#_ovTpFQ0BU?542Eix zB#~nocYqh2ZrsH>McfgvJ8_l?xNzWP9aJDl257*h?0t&RZi<+)7oj~#IT!~+LMsOy z#9b~sjk7FC;tX(7BtzNlcAiPuKc`9XBjUpk&XX32^D1FQ^D82(GGn%IqLsL6Nr!rM zBtMG%;N|2hETM_+;dsGpa1SP!$^sEfzLwUg%*HZXrH!=$NV<;Pt1w*&8Zll2RUuf# zjdT=ozxZ`Nx_9Q&f@n6*vd-qJD6daB> zbD5s2@F6{!fefiNICtwV=9D2whFIgPYII)~?yRg-WIol?*W4HWZk`-1?!J3BwsB9-#1JT zzA`%Y?%dV4zpTuRmrQmoSz@{U8Py|H4|#M)FLEB8KAkzxlid{<+B!V*TOaY_WY4YZ zZ28WQ)@Ex? zuVqer{k4Kx#{F!|E##-Zv-6K-N2Ae+j8k=Ef%wXN;q|MolP^sDd7=2do8r`stf3o6 zODpKE<=ew^v$GZT&(|Kg^iuco(%>W6M=n2prf2&m8u_RsZ~23^nUP2NbG=CCr)OR5 z%lj5L_2&=yvr2|eoVc>EFy~d{7f5Z}lgEl$D5~w3Cq6GeXMBD5`1UI5{qc`4F5J9k t6<3(?zD(<91J?>Fx9r;6RbmOkAL;NX6I1n_gXT}NW>1~(%