From 868e983282a16abfaf9c2d9d0e56a80ce8003b36 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Mon, 12 Jul 2021 09:18:33 +0300 Subject: [PATCH] Pottable crops and fixes --- .../betterend/blocks/EndBlockProperties.java | 5 +- .../ru/betterend/blocks/FlamaeaBlock.java | 5 + .../ru/betterend/blocks/FlowerPotBlock.java | 73 ++++---- .../blocks/NeonCactusPlantBlock.java | 8 + .../ru/betterend/blocks/ShadowBerryBlock.java | 4 +- .../blocks/SmallJellyshroomBlock.java | 8 + .../betterend/blocks/basis/EndPlantBlock.java | 5 + .../blocks/basis/EndTerrainBlock.java | 3 +- .../blocks/basis/EndTripleTerrain.java | 4 +- .../blocks/basis/PottableCropBlock.java | 30 ++++ .../betterend/interfaces/PottablePlant.java | 11 ++ .../betterend/interfaces/PottableTerrain.java | 3 + .../java/ru/betterend/registry/EndBlocks.java | 10 +- .../models/block/amber_grass_potted.json | 6 + .../models/block/amber_root_seed_potted.json | 6 + .../block/blooming_cooksonia_potted.json | 6 + .../models/block/bolux_mushroom_potted.json | 45 +++++ .../models/block/bushy_grass_potted.json | 6 + .../block/chorus_mushroom_seed_potted.json | 6 + .../models/block/clawfern_potted.json | 6 + .../models/block/crystal_grass_potted.json | 95 ++++++++++ .../models/block/fracturn_potted.json | 6 + .../models/block/globulagus_potted.json | 6 + .../models/block/jungle_grass_potted.json | 6 + .../models/block/lamellarium_potted.json | 6 + .../models/block/murkweed_potted.json | 163 ++++++++++++++++++ .../models/block/neon_cactus_potted.json | 45 +++++ .../models/block/shadow_plant_potted.json | 6 + .../models/block/vaiolush_fern_potted.json | 6 + .../textures/block/amber_grass_potted.png | Bin 0 -> 202 bytes .../textures/block/amber_root_potted.png | Bin 0 -> 218 bytes .../block/blooming_cooksonia_potted.png | Bin 0 -> 210 bytes .../block/blooming_cooksonia_potted_e.png | Bin 0 -> 145 bytes .../textures/block/bushy_grass_potted.png | Bin 0 -> 500 bytes .../textures/block/chorus_mushroom_potted.png | Bin 0 -> 330 bytes .../textures/block/clawfern_potted.png | Bin 0 -> 229 bytes .../textures/block/fracturn_potted.png | Bin 0 -> 325 bytes .../textures/block/fracturn_potted_e.png | Bin 0 -> 138 bytes .../textures/block/globulagus_potted.png | Bin 0 -> 224 bytes .../textures/block/jungle_grass_potted.png | Bin 0 -> 316 bytes .../textures/block/lamellarium_potted.png | Bin 0 -> 233 bytes .../textures/block/shadow_plant_potted.png | Bin 0 -> 340 bytes .../textures/block/vaiolush_fern_potted.png | Bin 0 -> 435 bytes 43 files changed, 536 insertions(+), 53 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/basis/PottableCropBlock.java create mode 100644 src/main/java/ru/betterend/interfaces/PottableTerrain.java create mode 100644 src/main/resources/assets/betterend/models/block/amber_grass_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/amber_root_seed_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/blooming_cooksonia_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/bolux_mushroom_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/bushy_grass_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/chorus_mushroom_seed_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/clawfern_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/crystal_grass_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/fracturn_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/globulagus_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/jungle_grass_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/lamellarium_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/murkweed_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/neon_cactus_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/shadow_plant_potted.json create mode 100644 src/main/resources/assets/betterend/models/block/vaiolush_fern_potted.json create mode 100644 src/main/resources/assets/betterend/textures/block/amber_grass_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/amber_root_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/blooming_cooksonia_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/blooming_cooksonia_potted_e.png create mode 100644 src/main/resources/assets/betterend/textures/block/bushy_grass_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/chorus_mushroom_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/clawfern_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/fracturn_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/fracturn_potted_e.png create mode 100644 src/main/resources/assets/betterend/textures/block/globulagus_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/jungle_grass_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/lamellarium_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/shadow_plant_potted.png create mode 100644 src/main/resources/assets/betterend/textures/block/vaiolush_fern_potted.png diff --git a/src/main/java/ru/betterend/blocks/EndBlockProperties.java b/src/main/java/ru/betterend/blocks/EndBlockProperties.java index 9198d03c..df159a88 100644 --- a/src/main/java/ru/betterend/blocks/EndBlockProperties.java +++ b/src/main/java/ru/betterend/blocks/EndBlockProperties.java @@ -5,7 +5,6 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.IntegerProperty; import ru.bclib.blocks.BlockProperties; -import ru.bclib.blocks.properties.StringProperty; import ru.betterend.registry.EndPortals; public class EndBlockProperties extends BlockProperties { @@ -14,8 +13,8 @@ public class EndBlockProperties extends BlockProperties { public static final EnumProperty CACTUS_BOTTOM = EnumProperty.create("bottom", CactusBottom.class); public static final IntegerProperty PORTAL = IntegerProperty.create("portal", 0, EndPortals.getCount()); - public static final IntegerProperty PLANT_ID = IntegerProperty.create("plant_id", 0, 127); - public static final IntegerProperty SOIL_ID = IntegerProperty.create("soil_id", 0, 10); + public static final IntegerProperty PLANT_ID = IntegerProperty.create("plant_id", 0, 63); + public static final IntegerProperty SOIL_ID = IntegerProperty.create("soil_id", 0, 15); public static final BooleanProperty HAS_ITEM = BooleanProperty.create("has_item"); public enum PedestalState implements StringRepresentable { diff --git a/src/main/java/ru/betterend/blocks/FlamaeaBlock.java b/src/main/java/ru/betterend/blocks/FlamaeaBlock.java index 0471c10c..aa1d8ec7 100644 --- a/src/main/java/ru/betterend/blocks/FlamaeaBlock.java +++ b/src/main/java/ru/betterend/blocks/FlamaeaBlock.java @@ -56,4 +56,9 @@ public class FlamaeaBlock extends EndPlantBlock implements ISpetialItem { public boolean canPlaceOnWater() { return true; } + + @Override + public boolean addToPot() { + return false; + } } diff --git a/src/main/java/ru/betterend/blocks/FlowerPotBlock.java b/src/main/java/ru/betterend/blocks/FlowerPotBlock.java index d7b3ad47..cf8e97d4 100644 --- a/src/main/java/ru/betterend/blocks/FlowerPotBlock.java +++ b/src/main/java/ru/betterend/blocks/FlowerPotBlock.java @@ -1,8 +1,6 @@ package ru.betterend.blocks; -import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.mojang.math.Transformation; @@ -18,8 +16,6 @@ import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.PackResources; -import net.minecraft.server.packs.PackType; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; @@ -30,7 +26,6 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.block.SaplingBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; @@ -41,35 +36,25 @@ import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import ru.bclib.blocks.BaseBlockNotFull; import ru.bclib.client.models.BasePatterns; -import ru.bclib.client.models.BlockModelProvider; import ru.bclib.client.models.ModelsHelper; import ru.bclib.client.models.ModelsHelper.MultiPartBuilder; import ru.bclib.client.models.PatternsHelper; import ru.bclib.client.render.BCLRenderLayer; import ru.bclib.interfaces.IPostInit; import ru.bclib.interfaces.IRenderTyped; -import ru.bclib.interfaces.ISpetialItem; import ru.bclib.util.BlocksHelper; import ru.bclib.util.JsonFactory; import ru.betterend.BetterEnd; -import ru.betterend.blocks.basis.EndTerrainBlock; import ru.betterend.blocks.basis.PottableLeavesBlock; import ru.betterend.client.models.Patterns; import ru.betterend.config.Configs; import ru.betterend.interfaces.PottablePlant; +import ru.betterend.interfaces.PottableTerrain; import ru.betterend.registry.EndBlocks; import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.Set; -import java.util.SplittableRandom; -import java.util.stream.Stream; public class FlowerPotBlock extends BaseBlockNotFull implements IRenderTyped, IPostInit { private static final IntegerProperty PLANT_ID = EndBlockProperties.PLANT_ID; @@ -121,10 +106,10 @@ public class FlowerPotBlock extends BaseBlockNotFull implements IRenderTyped, IP } EndBlocks.getModBlocks().forEach(block -> { - if (block instanceof PottablePlant && canBeAdded(block)) { + if (block instanceof PottablePlant && ((PottablePlant) block).addToPot()) {//&& canBeAdded(block)) { processBlock(plants, block, "flower_pots.plants", reservedPlantsIDs); } - else if (block instanceof EndTerrainBlock) { + else if (block instanceof PottableTerrain) { processBlock(soils, block, "flower_pots.soils", reservedSoilIDs); } }); @@ -154,22 +139,6 @@ public class FlowerPotBlock extends BaseBlockNotFull implements IRenderTyped, IP return max; } - private boolean canBeAdded(Block block) { - if (block instanceof SaplingBlock) { - return true; - } - else if (block instanceof PottableLeavesBlock) { - return true; - } - else if (block instanceof ISpetialItem) { - return !((ISpetialItem) block).canPlaceOnWater(); - } - else if (block.getStateDefinition().getProperties().isEmpty()) { - return true; - } - return false; - } - private void processBlock(Block[] target, Block block, String path, Map idMap) { ResourceLocation location = Registry.BLOCK.getKey(block); if (idMap.containsKey(location.getPath())) { @@ -194,7 +163,7 @@ public class FlowerPotBlock extends BaseBlockNotFull implements IRenderTyped, IP } ItemStack itemStack = player.getItemInHand(hand); int soilID = state.getValue(SOIL_ID); - if (soilID == 0 || soils[soilID - 1] == null) { + if (soilID == 0 || soilID > soils.length || soils[soilID - 1] == null) { if (!(itemStack.getItem() instanceof BlockItem)) { return InteractionResult.PASS; } @@ -210,12 +179,12 @@ public class FlowerPotBlock extends BaseBlockNotFull implements IRenderTyped, IP int plantID = state.getValue(PLANT_ID); if (itemStack.isEmpty()) { - if (plantID > 0 && plantID <= plants.length) { + if (plantID > 0 && plantID <= plants.length && plants[plantID - 1] != null) { BlocksHelper.setWithUpdate(level, pos, state.setValue(PLANT_ID, 0)); player.addItem(new ItemStack(plants[plantID - 1])); return InteractionResult.SUCCESS; } - if (soilID > 0 && soilID <= soils.length) { + if (soilID > 0 && soilID <= soils.length && soils[soilID - 1] != null) { BlocksHelper.setWithUpdate(level, pos, state.setValue(SOIL_ID, 0)); player.addItem(new ItemStack(soils[soilID - 1])); } @@ -295,14 +264,38 @@ public class FlowerPotBlock extends BaseBlockNotFull implements IRenderTyped, IP objSource = new ResourceLocation(modelPath.getNamespace(), "blockstates/" + modelPath.getPath() + ".json"); JsonObject obj = JsonFactory.getJsonObject(objSource); if (obj != null) { - JsonElement variants = obj.get("variants").getAsJsonObject().get(""); + JsonElement variants = obj.get("variants"); + JsonElement list = null; String path = null; + + if (variants == null) { + continue; + } + if (variants.isJsonArray()) { - path = variants.getAsJsonArray().get(0).getAsJsonObject().get("model").getAsString(); + list = variants.getAsJsonArray().get(0); + } + else if (variants.isJsonObject()) { + list = variants.getAsJsonObject().get(((PottablePlant) plants[i]).getPottedState()); + } + + if (list == null) { + BetterEnd.LOGGER.warning("Incorrect json for pot plant " + objSource + ", no matching variants"); + continue; + } + + if (list.isJsonArray()) { + path = list.getAsJsonArray().get(0).getAsJsonObject().get("model").getAsString(); } else { - path = variants.getAsJsonObject().get("model").getAsString(); + path = list.getAsJsonObject().get("model").getAsString(); } + + if (path == null) { + BetterEnd.LOGGER.warning("Incorrect json for pot plant " + objSource + ", no matching variants"); + continue; + } + model.part(new ResourceLocation(path)).setTransformation(offset).setCondition(state -> state.getValue(PLANT_ID) == compareID).add(); } else { diff --git a/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java b/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java index b2571ff5..4b4df46d 100644 --- a/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java @@ -2,6 +2,8 @@ package ru.betterend.blocks; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; @@ -401,4 +403,10 @@ public class NeonCactusPlantBlock extends BaseBlockNotFull implements SimpleWate public boolean canPlantOn(Block block) { return true; } + + @Override + @Environment(EnvType.CLIENT) + public String getPottedState() { + return "bottom=moss,shape=top,facing=up"; + } } diff --git a/src/main/java/ru/betterend/blocks/ShadowBerryBlock.java b/src/main/java/ru/betterend/blocks/ShadowBerryBlock.java index 997a8f85..e31de007 100644 --- a/src/main/java/ru/betterend/blocks/ShadowBerryBlock.java +++ b/src/main/java/ru/betterend/blocks/ShadowBerryBlock.java @@ -6,11 +6,11 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import ru.bclib.blocks.BaseCropBlock; +import ru.betterend.blocks.basis.PottableCropBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; -public class ShadowBerryBlock extends BaseCropBlock { +public class ShadowBerryBlock extends PottableCropBlock { private static final VoxelShape SHAPE = Block.box(1, 0, 1, 15, 8, 15); public ShadowBerryBlock() { diff --git a/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java b/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java index d1bec804..a0293a97 100644 --- a/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java +++ b/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java @@ -2,6 +2,8 @@ package ru.betterend.blocks; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.core.BlockPos; @@ -103,4 +105,10 @@ public class SmallJellyshroomBlock extends BaseAttachedBlock implements IRenderT public boolean canPlantOn(Block block) { return true; } + + @Override + @Environment(EnvType.CLIENT) + public String getPottedState() { + return "facing=up"; + } } diff --git a/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java index d0501e30..ecc1b787 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java @@ -36,4 +36,9 @@ public class EndPlantBlock extends BasePlantBlock implements PottablePlant { public boolean canPlantOn(Block block) { return isTerrain(block.defaultBlockState()); } + + @Override + public boolean addToPot() { + return getStateDefinition().getProperties().isEmpty(); + } } diff --git a/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java b/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java index 80af5145..be224b9c 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java @@ -3,8 +3,9 @@ package ru.betterend.blocks.basis; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; import ru.bclib.blocks.BaseTerrainBlock; +import ru.betterend.interfaces.PottableTerrain; -public class EndTerrainBlock extends BaseTerrainBlock { +public class EndTerrainBlock extends BaseTerrainBlock implements PottableTerrain { public EndTerrainBlock(MaterialColor color) { super(Blocks.END_STONE, color); } diff --git a/src/main/java/ru/betterend/blocks/basis/EndTripleTerrain.java b/src/main/java/ru/betterend/blocks/basis/EndTripleTerrain.java index b3344379..10d4d7b1 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndTripleTerrain.java +++ b/src/main/java/ru/betterend/blocks/basis/EndTripleTerrain.java @@ -3,9 +3,9 @@ package ru.betterend.blocks.basis; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; import ru.bclib.blocks.TripleTerrainBlock; +import ru.betterend.interfaces.PottableTerrain; -public class EndTripleTerrain extends TripleTerrainBlock { - +public class EndTripleTerrain extends TripleTerrainBlock implements PottableTerrain { public EndTripleTerrain(MaterialColor color) { super(Blocks.END_STONE, color); } diff --git a/src/main/java/ru/betterend/blocks/basis/PottableCropBlock.java b/src/main/java/ru/betterend/blocks/basis/PottableCropBlock.java new file mode 100644 index 00000000..9c84d0e9 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/basis/PottableCropBlock.java @@ -0,0 +1,30 @@ +package ru.betterend.blocks.basis; + +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import ru.bclib.blocks.BaseCropBlock; +import ru.betterend.interfaces.PottablePlant; + +public class PottableCropBlock extends BaseCropBlock implements PottablePlant { + private final Block[] terrain; + + public PottableCropBlock(Item drop, Block... terrain) { + super(drop, terrain); + this.terrain = terrain; + } + + @Override + public boolean canPlantOn(Block block) { + for (Block ter: terrain) { + if (block == ter) { + return true; + } + } + return false; + } + + @Override + public String getPottedState() { + return "age=3"; + } +} diff --git a/src/main/java/ru/betterend/interfaces/PottablePlant.java b/src/main/java/ru/betterend/interfaces/PottablePlant.java index 7bc45e51..8cff20ae 100644 --- a/src/main/java/ru/betterend/interfaces/PottablePlant.java +++ b/src/main/java/ru/betterend/interfaces/PottablePlant.java @@ -1,7 +1,18 @@ package ru.betterend.interfaces; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.world.level.block.Block; public interface PottablePlant { boolean canPlantOn(Block block); + + default boolean addToPot() { + return true; + } + + @Environment(EnvType.CLIENT) + default String getPottedState() { + return ""; + } } diff --git a/src/main/java/ru/betterend/interfaces/PottableTerrain.java b/src/main/java/ru/betterend/interfaces/PottableTerrain.java new file mode 100644 index 00000000..9f034393 --- /dev/null +++ b/src/main/java/ru/betterend/interfaces/PottableTerrain.java @@ -0,0 +1,3 @@ +package ru.betterend.interfaces; + +public interface PottableTerrain {} diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 78c2ae4d..490752f3 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -10,7 +10,6 @@ import net.minecraft.world.level.material.MaterialColor; import org.jetbrains.annotations.NotNull; import ru.bclib.blocks.BaseBarrelBlock; import ru.bclib.blocks.BaseChestBlock; -import ru.bclib.blocks.BaseCropBlock; import ru.bclib.blocks.BaseFurnaceBlock; import ru.bclib.blocks.BaseOreBlock; import ru.bclib.blocks.BasePathBlock; @@ -132,6 +131,7 @@ import ru.betterend.blocks.basis.EndUnderwaterWallPlantBlock; import ru.betterend.blocks.basis.EndWallMushroom; import ru.betterend.blocks.basis.EndWallPlantBlock; import ru.betterend.blocks.basis.FurBlock; +import ru.betterend.blocks.basis.PottableCropBlock; import ru.betterend.blocks.basis.PottableLeavesBlock; import ru.betterend.blocks.basis.StoneLanternBlock; import ru.betterend.blocks.complex.ColoredMaterial; @@ -321,10 +321,10 @@ public class EndBlocks extends BlocksRegistry { // Crops public static final Block SHADOW_BERRY = registerBlock("shadow_berry", new ShadowBerryBlock()); - public static final Block BLOSSOM_BERRY = registerBlock("blossom_berry_seed", new BaseCropBlock(EndItems.BLOSSOM_BERRY, PINK_MOSS)); - public static final Block AMBER_ROOT = registerBlock("amber_root_seed", new BaseCropBlock(EndItems.AMBER_ROOT_RAW, AMBER_MOSS)); - public static final Block CHORUS_MUSHROOM = registerBlock("chorus_mushroom_seed", new BaseCropBlock(EndItems.CHORUS_MUSHROOM_RAW, CHORUS_NYLIUM)); - //public static final Block PEARLBERRY = registerBlock("pearlberry_seed", new EndCropBlock(EndItems.BLOSSOM_BERRY, END_MOSS, END_MYCELIUM)); + public static final Block BLOSSOM_BERRY = registerBlock("blossom_berry_seed", new PottableCropBlock(EndItems.BLOSSOM_BERRY, PINK_MOSS)); + public static final Block AMBER_ROOT = registerBlock("amber_root_seed", new PottableCropBlock(EndItems.AMBER_ROOT_RAW, AMBER_MOSS)); + public static final Block CHORUS_MUSHROOM = registerBlock("chorus_mushroom_seed", new PottableCropBlock(EndItems.CHORUS_MUSHROOM_RAW, CHORUS_NYLIUM)); + //public static final Block PEARLBERRY = registerBlock("pearlberry_seed", new PottableCropBlock(EndItems.BLOSSOM_BERRY, END_MOSS, END_MYCELIUM)); public static final Block CAVE_PUMPKIN_SEED = registerBlock("cave_pumpkin_seed", new CavePumpkinVineBlock()); public static final Block CAVE_PUMPKIN = registerBlock("cave_pumpkin", new CavePumpkinBlock()); diff --git a/src/main/resources/assets/betterend/models/block/amber_grass_potted.json b/src/main/resources/assets/betterend/models/block/amber_grass_potted.json new file mode 100644 index 00000000..9b669549 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/amber_grass_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/amber_grass_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/amber_root_seed_potted.json b/src/main/resources/assets/betterend/models/block/amber_root_seed_potted.json new file mode 100644 index 00000000..3bce217c --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/amber_root_seed_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/amber_root_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/blooming_cooksonia_potted.json b/src/main/resources/assets/betterend/models/block/blooming_cooksonia_potted.json new file mode 100644 index 00000000..b3abaa7d --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/blooming_cooksonia_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/blooming_cooksonia_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/bolux_mushroom_potted.json b/src/main/resources/assets/betterend/models/block/bolux_mushroom_potted.json new file mode 100644 index 00000000..5730313a --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/bolux_mushroom_potted.json @@ -0,0 +1,45 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/bolux_mushroom", + "texture": "betterend:block/bolux_mushroom" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 4, 3, 4 ], + "to": [ 12, 7, 12 ], + "faces": { + "down": { "uv": [ 0, 8, 8, 16 ], "texture": "#texture" }, + "up": { "uv": [ 8, 0, 16, 8 ], "texture": "#texture" }, + "north": { "uv": [ 8, 12, 16, 16 ], "texture": "#texture" }, + "south": { "uv": [ 8, 12, 16, 16 ], "texture": "#texture" }, + "west": { "uv": [ 8, 12, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 8, 12, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 5, 7, 5 ], + "to": [ 11, 8, 11 ], + "faces": { + "up": { "uv": [ 9, 1, 15, 7 ], "texture": "#texture" }, + "north": { "uv": [ 9, 11, 15, 12 ], "texture": "#texture" }, + "south": { "uv": [ 9, 11, 15, 12 ], "texture": "#texture" }, + "west": { "uv": [ 9, 11, 15, 12 ], "texture": "#texture" }, + "east": { "uv": [ 9, 11, 15, 12 ], "texture": "#texture" } + } + }, + { + "__comment": "Box1", + "from": [ 7, 0, 7 ], + "to": [ 9, 3, 9 ], + "faces": { + "north": { "uv": [ 0, 0, 2, 3 ], "texture": "#texture" }, + "south": { "uv": [ 0, 0, 2, 3 ], "texture": "#texture" }, + "west": { "uv": [ 2, 0, 0, 3 ], "texture": "#texture" }, + "east": { "uv": [ 2, 0, 0, 3 ], "texture": "#texture" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/bushy_grass_potted.json b/src/main/resources/assets/betterend/models/block/bushy_grass_potted.json new file mode 100644 index 00000000..e9e9c134 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/bushy_grass_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/bushy_grass_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/chorus_mushroom_seed_potted.json b/src/main/resources/assets/betterend/models/block/chorus_mushroom_seed_potted.json new file mode 100644 index 00000000..58cf9e2d --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/chorus_mushroom_seed_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/chorus_mushroom_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/clawfern_potted.json b/src/main/resources/assets/betterend/models/block/clawfern_potted.json new file mode 100644 index 00000000..9ac28aa5 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/clawfern_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/clawfern_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/crystal_grass_potted.json b/src/main/resources/assets/betterend/models/block/crystal_grass_potted.json new file mode 100644 index 00000000..96fd61d3 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/crystal_grass_potted.json @@ -0,0 +1,95 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/crystal_grass_2", + "texture": "betterend:block/crystal_grass_2" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 5, 0, 4.5 ], + "to": [ 5.001, 9, 9.5 ], + "rotation": { "origin": [ 5, 0, 4.5 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 6, 7, 11, 16 ], "texture": "#texture" }, + "east": { "uv": [ 6, 7, 11, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 8.5, 0, 4.5 ], + "to": [ 8.501, 9, 9.5 ], + "rotation": { "origin": [ 8.5, 0, 4.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 6, 7, 11, 16 ], "texture": "#texture" }, + "east": { "uv": [ 6, 7, 11, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneY4", + "from": [ 4, 8.5, 4 ], + "to": [ 9, 8.501, 9 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 0, 5, 5 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 5, 5 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 8.5, -3, 7 ], + "to": [ 8.501, 6, 12 ], + "rotation": { "origin": [ 8.5, -3, 7 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 6, 7, 11, 16 ], "texture": "#texture" }, + "east": { "uv": [ 6, 7, 11, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 12, -3, 7 ], + "to": [ 12.001, 6, 12 ], + "rotation": { "origin": [ 12, -3, 7 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 6, 7, 11, 16 ], "texture": "#texture" }, + "east": { "uv": [ 6, 7, 11, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneY4", + "from": [ 8, 5.5, 6 ], + "to": [ 13, 5.501, 11 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 0, 5, 5 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 5, 5 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 5, -3, 9 ], + "to": [ 5.001, 5, 14 ], + "rotation": { "origin": [ 5, -3, 9 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 6, 8, 11, 16 ], "texture": "#texture" }, + "east": { "uv": [ 6, 8, 11, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 8, -3, 9.5 ], + "to": [ 8.001, 5, 14.5 ], + "rotation": { "origin": [ 8, -3, 9.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 6, 8, 11, 16 ], "texture": "#texture" }, + "east": { "uv": [ 6, 8, 11, 16 ], "texture": "#texture" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/fracturn_potted.json b/src/main/resources/assets/betterend/models/block/fracturn_potted.json new file mode 100644 index 00000000..a0e565f8 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/fracturn_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/fracturn_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/globulagus_potted.json b/src/main/resources/assets/betterend/models/block/globulagus_potted.json new file mode 100644 index 00000000..c028d9af --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/globulagus_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/globulagus_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/jungle_grass_potted.json b/src/main/resources/assets/betterend/models/block/jungle_grass_potted.json new file mode 100644 index 00000000..ad6ab68f --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/jungle_grass_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/jungle_grass_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/lamellarium_potted.json b/src/main/resources/assets/betterend/models/block/lamellarium_potted.json new file mode 100644 index 00000000..745763a0 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/lamellarium_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/lamellarium_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/murkweed_potted.json b/src/main/resources/assets/betterend/models/block/murkweed_potted.json new file mode 100644 index 00000000..07ec3599 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/murkweed_potted.json @@ -0,0 +1,163 @@ +{ + "__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": [ 5, 11, 3 ], + "to": [ 9, 15, 7 ], + "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": [ 6, 15, 4 ], + "to": [ 8, 15.5, 6 ], + "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": [ 5.5, 15.5, 3.5 ], + "to": [ 8.5, 16, 6.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": [ 5, 0, 2.5 ], + "to": [ 5.001, 11, 8.5 ], + "rotation": { "origin": [ 5, 0, 2.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": [ 9, 0, 2.5 ], + "to": [ 9.000999, 11, 8.5 ], + "rotation": { "origin": [ 9, 0, 2.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": [ 9, 0, 6.5 ], + "to": [ 9.000999, 9, 12.5 ], + "rotation": { "origin": [ 9, 0, 6.5 ], "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": [ 13, 0, 6.5 ], + "to": [ 13.001, 9, 12.5 ], + "rotation": { "origin": [ 13, 0, 6.5 ], "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": [ 4.5, 0, 7.5 ], + "to": [ 4.501, 5, 13.5 ], + "rotation": { "origin": [ 4.5, 0, 7.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": [ 8.5, 0, 7.5 ], + "to": [ 8.500999, 5, 13.5 ], + "rotation": { "origin": [ 8.5, 0, 7.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, 9, 7 ], + "to": [ 13, 13, 11 ], + "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": [ 10, 13, 9 ], + "to": [ 12, 13.5, 11 ], + "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": [ 9.5, 13.5, 7.5 ], + "to": [ 12.5, 14, 10.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": [ 5, 5, 8 ], + "to": [ 8, 9, 11 ], + "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/neon_cactus_potted.json b/src/main/resources/assets/betterend/models/block/neon_cactus_potted.json new file mode 100644 index 00000000..b194651f --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/neon_cactus_potted.json @@ -0,0 +1,45 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/neon_cactus_small_side", + "side": "betterend:block/neon_cactus_small_side_moss", + "top": "betterend:block/neon_cactus_small_top" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 6, 0, 6 ], + "to": [ 10, 8, 10 ], + "shade": false, + "faces": { + "up": { "uv": [ 6, 6, 10, 10 ], "texture": "#top" }, + "north": { "uv": [ 7, 6, 11, 14 ], "texture": "#side" }, + "south": { "uv": [ 7, 6, 11, 14 ], "texture": "#side" }, + "west": { "uv": [ 5, 6, 9, 14 ], "texture": "#side" }, + "east": { "uv": [ 5, 6, 9, 14 ], "texture": "#side" } + } + }, + { + "__comment": "PlaneX2", + "from": [ 4, 0, 4 ], + "to": [ 4.001, 8, 15.5 ], + "rotation": { "origin": [ 4, 0, 4 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" } + } + }, + { + "__comment": "PlaneX2", + "from": [ 12, 0, 4 ], + "to": [ 12.001, 8, 15.5 ], + "rotation": { "origin": [ 12, 0, 4 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/shadow_plant_potted.json b/src/main/resources/assets/betterend/models/block/shadow_plant_potted.json new file mode 100644 index 00000000..747d552e --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/shadow_plant_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/shadow_plant_potted" + } +} diff --git a/src/main/resources/assets/betterend/models/block/vaiolush_fern_potted.json b/src/main/resources/assets/betterend/models/block/vaiolush_fern_potted.json new file mode 100644 index 00000000..5a915f54 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/vaiolush_fern_potted.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/vaiolush_fern_potted" + } +} diff --git a/src/main/resources/assets/betterend/textures/block/amber_grass_potted.png b/src/main/resources/assets/betterend/textures/block/amber_grass_potted.png new file mode 100644 index 0000000000000000000000000000000000000000..dcd014691d3519932d9dbd34f59071fb2108d3d0 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6zM9{GlYxBc0G|+7 zAYE!9(`he0(?e=Oknqw_&OP}8XC}#AUZeH2^8gP}nzJOxFPPy!6qqy3z5*0<^>lFz zk(he4H<0Uq0guzt&RxIfSMYg7S2ePJdT1Q@;Q2zmx5vFZBC8uKTE0B2Owbm*^S&_f nj)J7ibqlG87k1XG4b&gTe~DWM4fi_S#s literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/amber_root_potted.png b/src/main/resources/assets/betterend/textures/block/amber_root_potted.png new file mode 100644 index 0000000000000000000000000000000000000000..ae47278a93c49358049533c7e98b469b79ec3f19 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~l>na*S0Ei` zq>yf}S>~~Bxp^c?v z1Jfb%6%71x|6llSn87(~LRDj251-KOmAbR_J}}lOGG?yIUHJ@XE`z75pUXO@geCx8 CL{B&X literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/blooming_cooksonia_potted.png b/src/main/resources/assets/betterend/textures/block/blooming_cooksonia_potted.png new file mode 100644 index 0000000000000000000000000000000000000000..e671521866bb40f3c322850aa5b8dab0f2e04274 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|dOTemLo9le z6C@%No-Tj?Ups!!?|z+QE?sTh_xBmksrxDA${WXg!Bpm!X=h^pJ}YI-b!i*ot}v7{ zI_fKEH*EZ0Q`LUiRbs)Xqr3m>iRb@wPoM37@^}9`sU|786u1^>tDP(> zab6>C`bYg_S;~TNdG~#3Db62GKKAXb`davZ|Negs*O?f;yvgHUQDPx$u1Q2eR5*?8l1)n+Q51&XlMnoel7LD=LLwd1Mf`{ΜFN?nG%RS?Z$yqQ9X3 z!i^huuB3F8sKl62qDjn3(lnFtV{9c=3S#a|j*H@uiN;^xfp>9vFV8*az6W?OYCf!e z-FWpqFg2o^_K=IG(ywkQ{3tc zOMxIIcD50X#Q3808@a_S)o4hyaR-z;SI(5cTOHo3spWer;C3dL*+QlO7ee*^GL z4|#hjpGk0sn8*E16?r*{px;AidHp4ziS8e8QQ;`b9R|bS?;_L%7H3wts#bxf_+K4i z!aK`>K|j9B+tk_c@$%#{0|d3C;`D5{{U^ppKXH8QBWF(%sGTeL99iYs9~Iq?4b;vR zoMe;mxSf{evvhF#vjPyXz7)sSk1gN~80_`owyZ!d?xU;EL1>B50!V3lWcv$_VHQp| qQR7bMt2+&;ViHcbgV3@>0PqCce!^~)2w|@P0000DHJHtEGKRO=1zI~rZ?`fFC ztCFm-hO%(vg4KH+I_(v4l!hyN$DpEszf`aNB-ZkN25#ex>bP5Wa{ zt(DM^tvhnyyxx%yAgjK+sI&De6t_Jt_FG)R`HtzdNU+ ZNN3A8dGP7UT43NXc)I$ztaD0e0s!dQlz{*M literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/clawfern_potted.png b/src/main/resources/assets/betterend/textures/block/clawfern_potted.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b566e3c02d312117fbb8c4d02f35b4942db05f GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~#Q>iWS0KGl zUGJ!t;aMHiD+ZPit-W8lMt%y)3tv8^V&mG%!yDT!?X(9f;w}mD3ugEa2eoCjSAoLO zo-U3d5>tEo9Qh6?aIknLEd27HUoU#~qqQ^&#=;IrTybX}8rz8u!EW7KP0>fBKhE?j=+3{#_9T QKx-I0UHx3vIVCg!00XpD761SM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/fracturn_potted.png b/src/main/resources/assets/betterend/textures/block/fracturn_potted.png new file mode 100644 index 0000000000000000000000000000000000000000..7125e17244e8dc399290ad0878935698906b1192 GIT binary patch literal 325 zcmV-L0lNN)P)Px#|4BqaR5*=eV4xLP`RV(A1_lO(|NsA^V4{J`#hXN_X2NCjpLh3&vIxU~+4mnY zIPBm4|M%mQ7>Z$r69vp?l*1LnG-C4>h6`Ze?~k7-u3})o?k%ham`o`6|M%xFIRDSP zdkp3?%Kv}4xD&s#VNQiPAI7&{)PU3PC@z3Gm4%BF&Ue_q{r}H*A8=ZVV!)qw_ZX}f zHT?hc?K=Yl0|UbzeRakIj-HI{LIT7YaKO=%@n~EFBf6Jh24agwtbzFV$4>@_JsbbS zyabC87#|t1U^U?9FNOmy{*1_c>qQO!u|*?R1Ac$}jKM!zK8+EZTC869`Qam8J~99R XZ19#li|)@~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/globulagus_potted.png b/src/main/resources/assets/betterend/textures/block/globulagus_potted.png new file mode 100644 index 0000000000000000000000000000000000000000..ea4d3c8342514eb262b9ae716bab8757a4013ea9 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~l>na*S0Ej} zd`jivjZIf~&AoqS*PENyzrH-9p?6u^=&pg)D{Jppu94HXfBXhi$5RsI7tHV<0XUBY zr~$=;JY5_^B&N>obrd?Fz`-oKYQm5I|HY2a?2!KR- z5zYNIKq+4+_jLI6(v_y~6~tXo-qiFx>O^z2t7^%R-7aW# z#q?N!d^$-Ky+z4vJTJynE|EqRYowb1heRP+J4n9ctQWL;qFmz1n^_PGkT+^QcHWq* z9i(AY{0}T+`;`Eo9;yIp%wRfEm<;l hy|}jLOquLO_R}--k4t~F@BuoP!PC{xWt~$(69Br6U%3DP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/shadow_plant_potted.png b/src/main/resources/assets/betterend/textures/block/shadow_plant_potted.png new file mode 100644 index 0000000000000000000000000000000000000000..bb92507d9b53cd27be7f0c5c441047ace4e1a34e GIT binary patch literal 340 zcmV-a0jvIrP)Px$4oO5oR5*?8kg<-!Fc3s%> zt&3$@7-IxUm>IqI5@Uq-9KFwe78RYfzC}R3?0000Px$ZAnByR5*>*Qaw+?P!v56Q3hmF2OSJC!5?5ujEf&}U|@xR;HZsDAgpc?W>WN6*UwKCFtmI0SQo{-0s!cgH39(dF8iB6r>qfX zQY3R39?aXi9>NJT2u{7EsH6ieRQISg*}>M)A=euQ?rv|OHw>g@$?u-bWjHe_yk~Q= zK&xeenH1YQdxV)3B}FAcvQw#IG>C-$PUs2Dq?lh>#?|=+@VzR(GqnV=;J~9}2gzK9 z&&+=M_MJ)