From 2a0c3ee1e0e418c16ddc792401a057f11dee5775 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Fri, 4 Dec 2020 21:24:24 +0300 Subject: [PATCH] Hydralux blocks --- .../ru/betterend/blocks/BlockHydralux.java | 41 +++++++ .../betterend/blocks/BlockHydraluxSpore.java | 44 ++++++++ .../ru/betterend/blocks/BlockProperties.java | 32 ++++++ .../java/ru/betterend/registry/EndBlocks.java | 5 + .../betterend/blockstates/hydralux.json | 14 +++ .../betterend/blockstates/hydralux_spore.json | 8 ++ .../block/hydralux_flower_big_1_bottom.json | 105 ++++++++++++++++++ .../block/hydralux_flower_big_2_bottom.json | 102 +++++++++++++++++ .../block/hydralux_flower_big_3_bottom.json | 105 ++++++++++++++++++ .../models/block/hydralux_flower_big_top.json | 43 +++++++ .../block/hydralux_flower_small_bottom.json | 58 ++++++++++ .../block/hydralux_flower_small_top.json | 23 ++++ .../models/block/hydralux_roots.json | 76 +++++++++++++ .../models/block/hydralux_spore.json | 6 + .../betterend/models/block/hydralux_vine.json | 6 + .../textures/block/hydralux_roots.png | Bin 0 -> 2071 bytes ...ydralux_sapling.png => hydralux_spore.png} | Bin 17 files changed, 668 insertions(+) create mode 100644 src/main/java/ru/betterend/blocks/BlockHydralux.java create mode 100644 src/main/java/ru/betterend/blocks/BlockHydraluxSpore.java create mode 100644 src/main/resources/assets/betterend/blockstates/hydralux.json create mode 100644 src/main/resources/assets/betterend/blockstates/hydralux_spore.json create mode 100644 src/main/resources/assets/betterend/models/block/hydralux_flower_big_1_bottom.json create mode 100644 src/main/resources/assets/betterend/models/block/hydralux_flower_big_2_bottom.json create mode 100644 src/main/resources/assets/betterend/models/block/hydralux_flower_big_3_bottom.json create mode 100644 src/main/resources/assets/betterend/models/block/hydralux_flower_big_top.json create mode 100644 src/main/resources/assets/betterend/models/block/hydralux_flower_small_bottom.json create mode 100644 src/main/resources/assets/betterend/models/block/hydralux_flower_small_top.json create mode 100644 src/main/resources/assets/betterend/models/block/hydralux_roots.json create mode 100644 src/main/resources/assets/betterend/models/block/hydralux_spore.json create mode 100644 src/main/resources/assets/betterend/models/block/hydralux_vine.json create mode 100644 src/main/resources/assets/betterend/textures/block/hydralux_roots.png rename src/main/resources/assets/betterend/textures/block/{hydralux_sapling.png => hydralux_spore.png} (100%) diff --git a/src/main/java/ru/betterend/blocks/BlockHydralux.java b/src/main/java/ru/betterend/blocks/BlockHydralux.java new file mode 100644 index 00000000..c2dc49b4 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/BlockHydralux.java @@ -0,0 +1,41 @@ +package ru.betterend.blocks; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; +import net.minecraft.block.BlockState; +import net.minecraft.block.Material; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.state.property.EnumProperty; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.WorldView; +import ru.betterend.blocks.BlockProperties.HydraluxShape; +import ru.betterend.blocks.basis.BlockUnderwaterPlant; +import ru.betterend.registry.EndBlocks; + +public class BlockHydralux extends BlockUnderwaterPlant { + public static final EnumProperty SHAPE = BlockProperties.HYDRALUX_SHAPE; + + public BlockHydralux() { + super(FabricBlockSettings.of(Material.UNDERWATER_PLANT) + .breakByTool(FabricToolTags.SHEARS) + .sounds(BlockSoundGroup.WET_GRASS) + .breakByHand(true) + .luminance((state) -> { return state.get(SHAPE).hasGlow() ? 15 : 0; }) + .noCollision()); + } + + @Override + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + BlockState down = world.getBlockState(pos.down()); + HydraluxShape shape = state.get(SHAPE); + if (shape == HydraluxShape.FLOWER_BIG_TOP || shape == HydraluxShape.FLOWER_SMALL_TOP) { + return down.isOf(this); + } + else if (shape == HydraluxShape.ROOTS) { + return down.isOf(EndBlocks.SULPHURIC_ROCK.stone) && world.getBlockState(pos.up()).isOf(this); + } + else { + return down.isOf(this) && world.getBlockState(pos.up()).isOf(this); + } + } +} diff --git a/src/main/java/ru/betterend/blocks/BlockHydraluxSpore.java b/src/main/java/ru/betterend/blocks/BlockHydraluxSpore.java new file mode 100644 index 00000000..c821a0a0 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/BlockHydraluxSpore.java @@ -0,0 +1,44 @@ +package ru.betterend.blocks; + +import java.util.Random; + +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockPos.Mutable; +import net.minecraft.world.StructureWorldAccess; +import ru.betterend.blocks.BlockProperties.HydraluxShape; +import ru.betterend.blocks.basis.BlockUnderwaterPlantWithAge; +import ru.betterend.registry.EndBlocks; +import ru.betterend.util.BlocksHelper; +import ru.betterend.util.MHelper; + +public class BlockHydraluxSpore extends BlockUnderwaterPlantWithAge { + @Override + public void grow(StructureWorldAccess world, Random random, BlockPos pos) { + int h = MHelper.randRange(4, 8, random); + Mutable mut = new Mutable().set(pos); + + for (int i = 1; i < h; i++) { + mut.setY(pos.getY() + i); + if (!world.getBlockState(mut).isOf(Blocks.WATER)) { + return; + } + } + + mut.setY(pos.getY()); + BlockState state = EndBlocks.HYDRALUX.getDefaultState(); + BlocksHelper.setWithoutUpdate(world, pos, state.with(BlockProperties.HYDRALUX_SHAPE, HydraluxShape.ROOTS)); + for (int i = 1; i < h - 2; i++) { + mut.setY(pos.getY() + i); + BlocksHelper.setWithoutUpdate(world, pos, state.with(BlockProperties.HYDRALUX_SHAPE, HydraluxShape.VINE)); + } + + mut.setY(mut.getY() + 1); + boolean big = random.nextBoolean(); + BlocksHelper.setWithoutUpdate(world, pos, state.with(BlockProperties.HYDRALUX_SHAPE, big ? HydraluxShape.FLOWER_BIG_BOTTOM : HydraluxShape.FLOWER_SMALL_BOTTOM)); + + mut.setY(mut.getY() + 1); + BlocksHelper.setWithoutUpdate(world, pos, state.with(BlockProperties.HYDRALUX_SHAPE, big ? HydraluxShape.FLOWER_BIG_TOP : HydraluxShape.FLOWER_SMALL_TOP)); + } +} diff --git a/src/main/java/ru/betterend/blocks/BlockProperties.java b/src/main/java/ru/betterend/blocks/BlockProperties.java index 5c9af96b..29b92634 100644 --- a/src/main/java/ru/betterend/blocks/BlockProperties.java +++ b/src/main/java/ru/betterend/blocks/BlockProperties.java @@ -7,6 +7,7 @@ import net.minecraft.util.StringIdentifiable; public class BlockProperties { public static final EnumProperty TRIPLE_SHAPE = EnumProperty.of("shape", TripleShape.class); public final static EnumProperty PEDESTAL_STATE = EnumProperty.of("state", PedestalState.class); + public static final EnumProperty HYDRALUX_SHAPE = EnumProperty.of("shape", HydraluxShape.class); public static final BooleanProperty HAS_ITEM = BooleanProperty.of("has_item"); public static final BooleanProperty HAS_LIGHT = BooleanProperty.of("has_light"); public static final BooleanProperty ACTIVATED = BooleanProperty.of("active"); @@ -57,4 +58,35 @@ public class BlockProperties { return this.name; } } + + public static enum HydraluxShape implements StringIdentifiable { + FLOWER_BIG_BOTTOM("flower_big_bottom", true), + FLOWER_BIG_TOP("flower_big_top", true), + FLOWER_SMALL_BOTTOM("flower_small_bottom", true), + FLOWER_SMALL_TOP("flower_small_top", true), + VINE("vine", false), + ROOTS("roots", false); + + private final String name; + private final boolean glow; + + HydraluxShape(String name, boolean glow) { + this.name = name; + this.glow = glow; + } + + @Override + public String asString() { + return name; + } + + @Override + public String toString() { + return name; + } + + public boolean hasGlow() { + return glow; + } + } } diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index cd88b3fb..80a3e588 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -28,6 +28,8 @@ import ru.betterend.blocks.BlockEndLotusSeed; import ru.betterend.blocks.BlockEndLotusStem; import ru.betterend.blocks.BlockEndstoneDust; import ru.betterend.blocks.BlockGlowingMoss; +import ru.betterend.blocks.BlockHydralux; +import ru.betterend.blocks.BlockHydraluxSpore; import ru.betterend.blocks.BlockHydrothermalVent; import ru.betterend.blocks.BlockLacugroveSapling; import ru.betterend.blocks.BlockMossyGlowshroomCap; @@ -164,6 +166,9 @@ public class EndBlocks { public static final Block END_LILY = registerBlockNI("end_lily", new BlockEndLily()); public static final Block END_LILY_SEED = registerBlock("end_lily_seed", new BlockEndLilySeed()); + public static final Block HYDRALUX_SPORE = registerBlock("hydralux_spore", new BlockHydraluxSpore()); + public static final Block HYDRALUX = registerBlock("hydralux", new BlockHydralux()); + public static final Block CAVE_BUSH = registerBlock("cave_bush", new BlockSimpleLeaves(MaterialColor.MAGENTA)); public static final Block MURKWEED = registerBlock("murkweed", new BlockMurkweed()); diff --git a/src/main/resources/assets/betterend/blockstates/hydralux.json b/src/main/resources/assets/betterend/blockstates/hydralux.json new file mode 100644 index 00000000..d0423855 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/hydralux.json @@ -0,0 +1,14 @@ +{ + "variants": { + "shape=flower_big_bottom": [ + { "model": "betterend:block/hydralux_flower_big_1_bottom" }, + { "model": "betterend:block/hydralux_flower_big_2_bottom" }, + { "model": "betterend:block/hydralux_flower_big_3_bottom" } + ], + "shape=flower_big_top": { "model": "betterend:block/hydralux_flower_big_top" }, + "shape=flower_small_bottom": { "model": "betterend:block/hydrothermal_vent" }, + "shape=flower_small_top": { "model": "betterend:block/hydralux_flower_small_bottom" }, + "shape=vine": { "model": "betterend:block/hydralux_vine" }, + "shape=roots": { "model": "betterend:block/hydralux_roots" } + } +} diff --git a/src/main/resources/assets/betterend/blockstates/hydralux_spore.json b/src/main/resources/assets/betterend/blockstates/hydralux_spore.json new file mode 100644 index 00000000..af85a8d3 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/hydralux_spore.json @@ -0,0 +1,8 @@ +{ + "variants": { + "age=0": { "model": "betterend:block/hydralux_spore" }, + "age=1": { "model": "betterend:block/hydralux_spore" }, + "age=2": { "model": "betterend:block/hydralux_spore" }, + "age=3": { "model": "betterend:block/hydralux_spore" } + } +} diff --git a/src/main/resources/assets/betterend/models/block/hydralux_flower_big_1_bottom.json b/src/main/resources/assets/betterend/models/block/hydralux_flower_big_1_bottom.json new file mode 100644 index 00000000..abc5294e --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/hydralux_flower_big_1_bottom.json @@ -0,0 +1,105 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/hydralux_flower_bottom", + "texture": "betterend:block/hydralux_flower_bottom", + "petal_bottom": "betterend:block/hydralux_flower_bud_petal_bottom", + "petal_side": "betterend:block/hydralux_flower_bud_petal_side", + "petal": "betterend:block/hydralux_flower_petal", + "top": "betterend:block/hydralux_bloom_top" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 2.375, 0, 2.25 ], + "to": [ 2.376, 6, 18.25 ], + "rotation": { "origin": [ 2.375, 0, 2.25 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 13.75, 0, 2.25 ], + "to": [ 13.751, 6, 18.25 ], + "rotation": { "origin": [ 13.75, 0, 2.25 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box3", + "from": [ 4, 6, 4 ], + "to": [ 12, 8, 12 ], + "faces": { + "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#petal_bottom" }, + "north": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "south": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "west": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "east": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" } + } + }, + { + "__comment": "Box4", + "from": [ 3, 8, 3 ], + "to": [ 13, 16, 13 ], + "shade": false, + "faces": { + "down": { "uv": [ 3, 3, 13, 13 ], "texture": "#texture" }, + "up": { "uv": [ 3, 3, 13, 13 ], "texture": "#top" }, + "north": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" }, + "south": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" }, + "west": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" }, + "east": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneY5", + "from": [ 0, 16, 13 ], + "to": [ 16, 16.001, 29 ], + "rotation": { "origin": [ 0, 16, 13 ], "axis": "x", "angle": 45 }, + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 180 } + } + }, + { + "__comment": "PlaneY5", + "from": [ 0, 0, 3 ], + "to": [ 16, 16, 3.001 ], + "rotation": { "origin": [ 0, 16, 3 ], "axis": "x", "angle": 45 }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 16, 16, 0 ], "texture": "#petal" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 180 } + } + }, + { + "__comment": "PlaneY7", + "from": [ 13, 16, 0 ], + "to": [ 29, 16.001, 16 ], + "rotation": { "origin": [ 13, 16, 0 ], "axis": "z", "angle": -45 }, + "shade": false, + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 90 }, + "up": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal", "rotation": 90 } + } + }, + { + "__comment": "PlaneY7", + "from": [ 3, 0, 0 ], + "to": [ 3.001, 16, 16 ], + "rotation": { "origin": [ 3, 16, 0 ], "axis": "z", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 16, 16, 0, 0 ], "texture": "#petal" }, + "east": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal", "rotation": 180 } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/hydralux_flower_big_2_bottom.json b/src/main/resources/assets/betterend/models/block/hydralux_flower_big_2_bottom.json new file mode 100644 index 00000000..27cdfd0f --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/hydralux_flower_big_2_bottom.json @@ -0,0 +1,102 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/hydralux_flower_bottom", + "texture": "betterend:block/hydralux_flower_bottom", + "petal_bottom": "betterend:block/hydralux_flower_bud_petal_bottom", + "petal_side": "betterend:block/hydralux_flower_bud_petal_side", + "petal": "betterend:block/hydralux_flower_petal", + "top": "betterend:block/hydralux_bloom_top" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 2.375, 0, 2.25 ], + "to": [ 2.376, 6, 18.25 ], + "rotation": { "origin": [ 2.375, 0, 2.25 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 13.75, 0, 2.25 ], + "to": [ 13.751, 6, 18.25 ], + "rotation": { "origin": [ 13.75, 0, 2.25 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box3", + "from": [ 4, 6, 4 ], + "to": [ 12, 8, 12 ], + "faces": { + "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#petal_bottom" }, + "north": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "south": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "west": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "east": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" } + } + }, + { + "__comment": "Box4", + "from": [ 3, 8, 3 ], + "to": [ 13, 16, 13 ], + "shade": false, + "faces": { + "down": { "uv": [ 3, 3, 13, 13 ], "texture": "#texture" }, + "up": { "uv": [ 3, 3, 13, 13 ], "texture": "#top" }, + "north": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" }, + "south": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" }, + "west": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" }, + "east": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneY5", + "from": [ 0, 16, 13 ], + "to": [ 16, 16.001, 29 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 180 } + } + }, + { + "__comment": "PlaneY5", + "from": [ 0, 15.9989, -13 ], + "to": [ 16, 15.9999, 3 ], + "shade": false, + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 180 }, + "up": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal" } + } + }, + { + "__comment": "PlaneY7", + "from": [ 13, 16, 0 ], + "to": [ 29, 16.001, 16 ], + "rotation": { "origin": [ 13, 16, 0 ], "axis": "z", "angle": 0 }, + "shade": false, + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 90 }, + "up": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal", "rotation": 90 } + } + }, + { + "__comment": "PlaneY7", + "from": [ -13, 15.9989, 0 ], + "to": [ 3, 15.9999, 16 ], + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal", "rotation": 270 }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 270 } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/hydralux_flower_big_3_bottom.json b/src/main/resources/assets/betterend/models/block/hydralux_flower_big_3_bottom.json new file mode 100644 index 00000000..c21ff703 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/hydralux_flower_big_3_bottom.json @@ -0,0 +1,105 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/hydralux_flower_bottom", + "texture": "betterend:block/hydralux_flower_bottom", + "petal_bottom": "betterend:block/hydralux_flower_bud_petal_bottom", + "petal_side": "betterend:block/hydralux_flower_bud_petal_side", + "petal": "betterend:block/hydralux_flower_petal", + "top": "betterend:block/hydralux_bloom_top" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 2.375, 0, 2.25 ], + "to": [ 2.376, 6, 18.25 ], + "rotation": { "origin": [ 2.375, 0, 2.25 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 13.75, 0, 2.25 ], + "to": [ 13.751, 6, 18.25 ], + "rotation": { "origin": [ 13.75, 0, 2.25 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box3", + "from": [ 4, 6, 4 ], + "to": [ 12, 8, 12 ], + "faces": { + "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#petal_bottom" }, + "north": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "south": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "west": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "east": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" } + } + }, + { + "__comment": "Box4", + "from": [ 3, 8, 3 ], + "to": [ 13, 16, 13 ], + "shade": false, + "faces": { + "down": { "uv": [ 3, 3, 13, 13 ], "texture": "#texture" }, + "up": { "uv": [ 3, 3, 13, 13 ], "texture": "#top" }, + "north": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" }, + "south": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" }, + "west": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" }, + "east": { "uv": [ 3, 0, 13, 8 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneY5", + "from": [ 0, 16, 13 ], + "to": [ 16, 16.001, 29 ], + "rotation": { "origin": [ 0, 16, 13 ], "axis": "x", "angle": -45 }, + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal" }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 180 } + } + }, + { + "__comment": "PlaneY5", + "from": [ 0, 15.9989, -13 ], + "to": [ 16, 15.9999, 3 ], + "rotation": { "origin": [ 0, 16, 3 ], "axis": "x", "angle": 45 }, + "shade": false, + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 180 }, + "up": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal" } + } + }, + { + "__comment": "PlaneY7", + "from": [ 13, 16, 0 ], + "to": [ 29, 16.001, 16 ], + "rotation": { "origin": [ 13, 16, 0 ], "axis": "z", "angle": 45 }, + "shade": false, + "faces": { + "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 90 }, + "up": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal", "rotation": 90 } + } + }, + { + "__comment": "PlaneY7", + "from": [ -13, 15.9989, 0 ], + "to": [ 3, 15.9999, 16 ], + "rotation": { "origin": [ 3, 16, 0 ], "axis": "z", "angle": -45 }, + "shade": false, + "faces": { + "down": { "uv": [ 16, 0, 0, 16 ], "texture": "#petal", "rotation": 270 }, + "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#petal", "rotation": 270 } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/hydralux_flower_big_top.json b/src/main/resources/assets/betterend/models/block/hydralux_flower_big_top.json new file mode 100644 index 00000000..f8861c1a --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/hydralux_flower_big_top.json @@ -0,0 +1,43 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/hydralux_flower_bud", + "texture": "betterend:block/hydralux_flower_bud" + }, + "elements": [ + { + "__comment": "Box3", + "from": [ 4, 0, 4 ], + "to": [ 12, 3, 12 ], + "faces": { + "up": { "uv": [ 0, 0, 8, 8 ], "texture": "#texture" }, + "north": { "uv": [ 0, 8, 8, 11 ], "texture": "#texture" }, + "south": { "uv": [ 0, 8, 8, 11 ], "texture": "#texture" }, + "west": { "uv": [ 0, 8, 8, 11 ], "texture": "#texture" }, + "east": { "uv": [ 0, 8, 8, 11 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX9", + "from": [ 5.5, 3, 5.5 ], + "to": [ 5.501, 11, 13.5 ], + "rotation": { "origin": [ 5.5, 3, 5.5 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 8, 8, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 8, 8, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX9", + "from": [ 10.5, 3, 5.5 ], + "to": [ 10.501, 11, 13.5 ], + "rotation": { "origin": [ 10.5, 3, 5.5 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 8, 8, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 8, 8, 16, 16 ], "texture": "#texture" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/hydralux_flower_small_bottom.json b/src/main/resources/assets/betterend/models/block/hydralux_flower_small_bottom.json new file mode 100644 index 00000000..55a894c4 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/hydralux_flower_small_bottom.json @@ -0,0 +1,58 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/hydralux_flower_bottom", + "texture": "betterend:block/hydralux_flower_bottom", + "petal_bottom": "betterend:block/hydralux_flower_bud_petal_bottom", + "petal_side": "betterend:block/hydralux_flower_bud_petal_side" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 2.375, 0, 2.25 ], + "to": [ 2.376, 6, 18.25 ], + "rotation": { "origin": [ 2.375, 0, 2.25 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 13.75, 0, 2.25 ], + "to": [ 13.751, 6, 18.25 ], + "rotation": { "origin": [ 13.75, 0, 2.25 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 9, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "Box3", + "from": [ 4, 6, 4 ], + "to": [ 12, 8, 12 ], + "faces": { + "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#petal_bottom" }, + "north": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "south": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "west": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" }, + "east": { "uv": [ 4, 8, 12, 10 ], "texture": "#texture" } + } + }, + { + "__comment": "Box4", + "from": [ 3, 8, 3 ], + "to": [ 13, 16, 13 ], + "shade": false, + "faces": { + "down": { "uv": [ 3, 3, 13, 13 ], "texture": "#petal_bottom" }, + "north": { "uv": [ 3, 8, 13, 16 ], "texture": "#petal_side" }, + "south": { "uv": [ 3, 8, 13, 16 ], "texture": "#petal_side" }, + "west": { "uv": [ 3, 8, 13, 16 ], "texture": "#petal_side" }, + "east": { "uv": [ 3, 8, 13, 16 ], "texture": "#petal_side" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/hydralux_flower_small_top.json b/src/main/resources/assets/betterend/models/block/hydralux_flower_small_top.json new file mode 100644 index 00000000..8342b9c5 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/hydralux_flower_small_top.json @@ -0,0 +1,23 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/hydralux_flower_bud_petal_side", + "texture": "betterend:block/hydralux_flower_bud_petal_side", + "petal_top": "betterend:block/hydralux_flower_bud_petal_top" + }, + "elements": [ + { + "__comment": "Box4", + "from": [ 3, 0, 3 ], + "to": [ 13, 8, 13 ], + "shade": false, + "faces": { + "up": { "uv": [ 3, 3, 13, 13 ], "texture": "#petal_top" }, + "north": { "uv": [ 3, 8, 13, 16 ], "texture": "#texture" }, + "south": { "uv": [ 3, 8, 13, 16 ], "texture": "#texture" }, + "west": { "uv": [ 3, 8, 13, 16 ], "texture": "#texture" }, + "east": { "uv": [ 3, 8, 13, 16 ], "texture": "#texture" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/hydralux_roots.json b/src/main/resources/assets/betterend/models/block/hydralux_roots.json new file mode 100644 index 00000000..4d0ba2b8 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/hydralux_roots.json @@ -0,0 +1,76 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/hydralux_vine", + "texture": "betterend:block/hydralux_vine", + "roots": "betterend:block/hydralux_roots" + }, + "elements": [ + { + "__comment": "PlaneX1", + "from": [ 2.375, 0, 2.25 ], + "to": [ 2.376, 16, 18.25 ], + "rotation": { "origin": [ 2.375, 0, 2.25 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX1", + "from": [ 13.75, 0, 2.25 ], + "to": [ 13.751, 16, 18.25 ], + "rotation": { "origin": [ 13.75, 0, 2.25 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 5, 0, 0.5 ], + "to": [ 5.001, 16, 16.5 ], + "rotation": { "origin": [ 5, 0, 0.5 ], "axis": "y", "angle": 22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#roots" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#roots" } + } + }, + { + "__comment": "PlaneZ5", + "from": [ 0.5, 0, 11 ], + "to": [ 16.5, 16, 11.001 ], + "rotation": { "origin": [ 0.5, 0, 11 ], "axis": "y", "angle": 22.5 }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#roots" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#roots" } + } + }, + { + "__comment": "PlaneX4", + "from": [ 11, 0, 0.5 ], + "to": [ 11.001, 16, 16.5 ], + "rotation": { "origin": [ 11, 0, 0.5 ], "axis": "y", "angle": -22.5 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#roots" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#roots" } + } + }, + { + "__comment": "PlaneZ5", + "from": [ 0.5, 0, 5 ], + "to": [ 16.5, 16, 5.001 ], + "rotation": { "origin": [ 0.5, 0, 5 ], "axis": "y", "angle": -22.5 }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#roots" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#roots" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/hydralux_spore.json b/src/main/resources/assets/betterend/models/block/hydralux_spore.json new file mode 100644 index 00000000..c7a7897e --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/hydralux_spore.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_no_distortion", + "textures": { + "texture": "betterend:block/hydralux_spore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/hydralux_vine.json b/src/main/resources/assets/betterend/models/block/hydralux_vine.json new file mode 100644 index 00000000..25db406b --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/hydralux_vine.json @@ -0,0 +1,6 @@ +{ + "parent": "betterend:block/cross_no_distortion", + "textures": { + "texture": "betterend:block/hydralux_vine" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/textures/block/hydralux_roots.png b/src/main/resources/assets/betterend/textures/block/hydralux_roots.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ee21419b6cb4633e9fdff147587acad8ca9ccb GIT binary patch literal 2071 zcmbVN3ry5@94^>GyM+FM(=0}~(k z7)Cb@YJA{h^AWeO&8eBo20E3X;$sPMINhSSpl0(iM2(8i{d*iYT+o?a((AwN_y4}{ z_vo*SiwY+uYF^Vo5R~Z5b4&*3B=s23AN;4@d`yAUz+m3HG6W4uR*yJn-TD*=N@(HT z9>wD-AZan6r5Mr6YQupbKts^jap53E&tw(Y%ldf1hIG{bh`>B!L#7&CxGQL9OZdD> zi7l=ybkmhHX)A+_%Yny+Nk9-_6$%aq{DMq|ZAgTd1Z(v+hQJYsGSh~PR|R2@s|dD> z5(^u(CX^-&I@oO05+>ZLGi1X$oG@d!86)&4PLQ~X)LY@`4*_Zt!;zC6xlt`}WkX67 zB}igeC=}9$^jcB!VT9Fc#c&;_)1d%?$`yh_g;7CH>tS%PGA;2zg%<@_Wu&}fnPNkL z)9w%g!5FO|N7DonhJ~phMrd(0qzI6qW4K_MJK#D&X6It5vw1e$d^YzPQj%kvCrrY&BYvzSnvvwBh1Xuwg6nKPnh1LZYYImXKo zvHcE_E>nxE?(gn%Mx+79KdKyOHX3Nkh#DZ&uY60~lGW$zZh5U?c9;qgK{HqgD=(c^O7Wn@mR9NLbW{j`Rqb$IGC47139u znEf!i^7C+{El7%1+uerHYMogIiQeY>$j5UjNB4(HSU~!W;&-ddBBz8Xi5>3)xqF`e z!k*?|rplk~{`soeZL7EYKKt>1x{oG@E};Y;3nnOrsPSOxtm!Td_V21ip7okbJ#aAW z)MaeSf{WOkW(7bkfhk<2Ie!3x;;uR!^Dwx{+fulF z1wdI|)g;tSspE4tjXB@mdAf4%bg1j$rrMPF4ct#lnhuU$m7i%DF}OTuQ~UIOU!3ui z$LB7py5E-e{*GThJ9yTS^c!qPtg8AG&Ci8NQd&94# z-|i}}A6c+=D6}Sbn&+&>d? j^-F&^{Q7?FH@8ybca(9}ld9EEKjfTH==l2W8C8D+Yl_