diff --git a/src/main/java/ru/betterend/blocks/NeonCactusBlock.java b/src/main/java/ru/betterend/blocks/NeonCactusBlock.java new file mode 100644 index 00000000..b3dab068 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/NeonCactusBlock.java @@ -0,0 +1,116 @@ +package ru.betterend.blocks; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.ShapeContext; +import net.minecraft.block.Waterloggable; +import net.minecraft.fluid.FluidState; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.state.property.DirectionProperty; +import net.minecraft.state.property.EnumProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.util.BlockMirror; +import net.minecraft.util.BlockRotation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Direction.Axis; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.WorldAccess; +import ru.betterend.blocks.BlockProperties.TripleShape; +import ru.betterend.blocks.basis.BlockBaseNotFull; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; +import ru.betterend.util.BlocksHelper; + +public class NeonCactusBlock extends BlockBaseNotFull implements Waterloggable, IRenderTypeable { + public static final EnumProperty SHAPE = BlockProperties.TRIPLE_SHAPE; + public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; + public static final DirectionProperty FACING = Properties.FACING; + + private static final VoxelShape MEDIUM_X = Block.createCuboidShape(0, 2, 2, 16, 14, 14); + private static final VoxelShape MEDIUM_Y = Block.createCuboidShape(2, 0, 2, 14, 16, 14); + private static final VoxelShape MEDIUM_Z = Block.createCuboidShape(2, 2, 0, 14, 14, 16); + + private static final VoxelShape SMALL_X = Block.createCuboidShape(0, 4, 4, 16, 12, 12); + private static final VoxelShape SMALL_Y = Block.createCuboidShape(4, 0, 4, 12, 16, 12); + private static final VoxelShape SMALL_Z = Block.createCuboidShape(4, 4, 0, 12, 12, 16); + + public NeonCactusBlock() { + super(FabricBlockSettings.copyOf(Blocks.CACTUS).luminance(state -> { + TripleShape shape = state.get(SHAPE); + if (shape == TripleShape.TOP) { + return 15; + } + return shape == TripleShape.MIDDLE ? 13 : 10; + })); + } + + @Override + protected void appendProperties(StateManager.Builder stateManager) { + stateManager.add(SHAPE, WATERLOGGED, FACING); + } + + @Override + public BlockState getPlacementState(ItemPlacementContext ctx) { + WorldAccess worldAccess = ctx.getWorld(); + BlockPos blockPos = ctx.getBlockPos(); + return this.getDefaultState().with(WATERLOGGED, worldAccess.getFluidState(blockPos).getFluid() == Fluids.WATER).with(FACING, ctx.getSide()); + } + + @Override + public BlockState rotate(BlockState state, BlockRotation rotation) { + return BlocksHelper.rotateHorizontal(state, rotation, FACING); + } + + @Override + public BlockState mirror(BlockState state, BlockMirror mirror) { + return BlocksHelper.mirrorHorizontal(state, mirror, FACING); + } + + @Override + public FluidState getFluidState(BlockState state) { + return (Boolean) state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : super.getFluidState(state); + } + + @Override + public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState newState, WorldAccess world, BlockPos pos, BlockPos posFrom) { + if ((Boolean) state.get(WATERLOGGED)) { + world.getFluidTickScheduler().schedule(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); + } + return state; + } + + @Override + public ERenderLayer getRenderLayer() { + return ERenderLayer.CUTOUT; + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext ePos) { + TripleShape shape = state.get(SHAPE); + + if (shape == TripleShape.BOTTOM) { + return VoxelShapes.fullCube(); + } + Axis dir = state.get(FACING).getAxis(); + if (shape == TripleShape.MIDDLE) { + if (dir == Axis.Y) { + return MEDIUM_Y; + } + return dir == Axis.X ? MEDIUM_X : MEDIUM_Z; + } + else { + if (dir == Axis.Y) { + return SMALL_Y; + } + return dir == Axis.X ? SMALL_X : SMALL_Z; + } + } +} diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index f2186f82..0bd65fee 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -9,104 +9,7 @@ import net.minecraft.item.LilyPadItem; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import ru.betterend.BetterEnd; -import ru.betterend.blocks.AeterniumAnvil; -import ru.betterend.blocks.AeterniumBlock; -import ru.betterend.blocks.AmaranitaCapBlock; -import ru.betterend.blocks.AmaranitaHymenophoreBlock; -import ru.betterend.blocks.AmaranitaStemBlock; -import ru.betterend.blocks.AmberBlock; -import ru.betterend.blocks.AncientEmeraldIceBlock; -import ru.betterend.blocks.AuroraCrystalBlock; -import ru.betterend.blocks.BlueVineBlock; -import ru.betterend.blocks.BlueVineLanternBlock; -import ru.betterend.blocks.BlueVineSeedBlock; -import ru.betterend.blocks.BoluxMushroomBlock; -import ru.betterend.blocks.BrimstoneBlock; -import ru.betterend.blocks.BubbleCoralBlock; -import ru.betterend.blocks.BulbVineBlock; -import ru.betterend.blocks.BulbVineLanternBlock; -import ru.betterend.blocks.BulbVineLanternColoredBlock; -import ru.betterend.blocks.BulbVineSeedBlock; -import ru.betterend.blocks.CavePumpkinBlock; -import ru.betterend.blocks.CavePumpkinVineBlock; -import ru.betterend.blocks.ChandelierBlock; -import ru.betterend.blocks.CharcoalBlock; -import ru.betterend.blocks.CharniaBlock; -import ru.betterend.blocks.ChorusGrassBlock; -import ru.betterend.blocks.DenseEmeraldIceBlock; -import ru.betterend.blocks.DenseSnowBlock; -import ru.betterend.blocks.DragonTreeSaplingBlock; -import ru.betterend.blocks.EmeraldIceBlock; -import ru.betterend.blocks.EndLilyBlock; -import ru.betterend.blocks.EndLilySeedBlock; -import ru.betterend.blocks.EndLotusFlowerBlock; -import ru.betterend.blocks.EndLotusLeafBlock; -import ru.betterend.blocks.EndLotusSeedBlock; -import ru.betterend.blocks.EndLotusStemBlock; -import ru.betterend.blocks.EndPathBlock; -import ru.betterend.blocks.EndPortalBlock; -import ru.betterend.blocks.EndStoneSmelter; -import ru.betterend.blocks.EndTerrainBlock; -import ru.betterend.blocks.EnderBlock; -import ru.betterend.blocks.EndstoneDustBlock; -import ru.betterend.blocks.EternalPedestal; -import ru.betterend.blocks.EternalRunedFlavolite; -import ru.betterend.blocks.FilaluxLanternBlock; -import ru.betterend.blocks.FlamaeaBlock; -import ru.betterend.blocks.GlowingHymenophoreBlock; -import ru.betterend.blocks.GlowingMossBlock; -import ru.betterend.blocks.GlowingPillarLuminophorBlock; -import ru.betterend.blocks.GlowingPillarRootsBlock; -import ru.betterend.blocks.GlowingPillarSeedBlock; -import ru.betterend.blocks.HelixTreeLeavesBlock; -import ru.betterend.blocks.HelixTreeSaplingBlock; -import ru.betterend.blocks.HydraluxBlock; -import ru.betterend.blocks.HydraluxPetalBlock; -import ru.betterend.blocks.HydraluxPetalColoredBlock; -import ru.betterend.blocks.HydraluxSaplingBlock; -import ru.betterend.blocks.HydrothermalVentBlock; -import ru.betterend.blocks.InfusionPedestal; -import ru.betterend.blocks.JellyshroomCapBlock; -import ru.betterend.blocks.LacugroveSaplingBlock; -import ru.betterend.blocks.LanceleafBlock; -import ru.betterend.blocks.LanceleafSeedBlock; -import ru.betterend.blocks.LargeAmaranitaBlock; -import ru.betterend.blocks.LumecornBlock; -import ru.betterend.blocks.LumecornSeedBlock; -import ru.betterend.blocks.MengerSpongeBlock; -import ru.betterend.blocks.MengerSpongeWetBlock; -import ru.betterend.blocks.MissingTileBlock; -import ru.betterend.blocks.MossyDragonBoneBlock; -import ru.betterend.blocks.MossyGlowshroomCapBlock; -import ru.betterend.blocks.MossyGlowshroomSaplingBlock; -import ru.betterend.blocks.MossyObsidian; -import ru.betterend.blocks.MurkweedBlock; -import ru.betterend.blocks.NeedlegrassBlock; -import ru.betterend.blocks.PedestalVanilla; -import ru.betterend.blocks.PythadendronSaplingBlock; -import ru.betterend.blocks.RespawnObeliskBlock; -import ru.betterend.blocks.RunedFlavolite; -import ru.betterend.blocks.ShadowBerryBlock; -import ru.betterend.blocks.ShadowGrassBlock; -import ru.betterend.blocks.SilkMothHiveBlock; -import ru.betterend.blocks.SilkMothNestBlock; -import ru.betterend.blocks.SmallAmaranitaBlock; -import ru.betterend.blocks.SmallJellyshroomBlock; -import ru.betterend.blocks.SmaragdantCrystalBlock; -import ru.betterend.blocks.SmaragdantCrystalShardBlock; -import ru.betterend.blocks.SulphurCrystalBlock; -import ru.betterend.blocks.TenaneaFlowersBlock; -import ru.betterend.blocks.TenaneaSaplingBlock; -import ru.betterend.blocks.TerrainPlantBlock; -import ru.betterend.blocks.TwistedUmbrellaMossBlock; -import ru.betterend.blocks.TwistedUmbrellaMossTallBlock; -import ru.betterend.blocks.UmbrellaMossBlock; -import ru.betterend.blocks.UmbrellaMossTallBlock; -import ru.betterend.blocks.UmbrellaTreeClusterBlock; -import ru.betterend.blocks.UmbrellaTreeClusterEmptyBlock; -import ru.betterend.blocks.UmbrellaTreeMembraneBlock; -import ru.betterend.blocks.UmbrellaTreeSaplingBlock; -import ru.betterend.blocks.VentBubbleColumnBlock; +import ru.betterend.blocks.*; import ru.betterend.blocks.basis.EndCropBlock; import ru.betterend.blocks.basis.EndFurnaceBlock; import ru.betterend.blocks.basis.EndLeavesBlock; @@ -298,6 +201,8 @@ public class EndBlocks { public static final Block AMARANITA_FUR = registerBlock("amaranita_fur", new FurBlock(MOSSY_GLOWSHROOM_SAPLING, 15, 4)); public static final Block AMARANITA_CAP = registerBlock("amaranita_cap", new AmaranitaCapBlock()); + public static final Block NEON_CACTUS = registerBlock("neon_cactus", new NeonCactusBlock()); + // Crops public static final Block SHADOW_BERRY = registerBlock("shadow_berry", new ShadowBerryBlock()); public static final Block BLOSSOM_BERRY = registerBlock("blossom_berry_seed", new EndCropBlock(EndItems.BLOSSOM_BERRY, PINK_MOSS)); @@ -353,6 +258,7 @@ public class EndBlocks { public static final Block BULB_VINE = registerBlock("bulb_vine", new BulbVineBlock()); public static final Block JUNGLE_VINE = registerBlock("jungle_vine", new VineBlock()); public static final Block RUBINEA = registerBlock("rubinea", new VineBlock()); + public static final Block MAGNULA = registerBlock("magnula", new VineBlock()); public static final Block FILALUX = registerBlock("filalux", new FilaluxBlock()); public static final Block FILALUX_WINGS = registerBlock("filalux_wings", new FilaluxWingsBlock()); public static final Block FILALUX_LANTERN = registerBlock("filalux_lantern", new FilaluxLanternBlock()); diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index 85799e54..44ba276b 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -217,6 +217,7 @@ public class EndFeatures { public static final DefaultFeature CAVE_BUSH = new BushFeature(EndBlocks.CAVE_BUSH, EndBlocks.CAVE_BUSH); public static final DefaultFeature CAVE_GRASS = new SingleBlockFeature(EndBlocks.CAVE_GRASS); public static final DefaultFeature RUBINEA = new VineFeature(EndBlocks.RUBINEA, 8); + public static final DefaultFeature MAGNULA = new VineFeature(EndBlocks.MAGNULA, 8); public static final DefaultFeature END_STONE_STALACTITE = new StalactiteFeature(true, EndBlocks.END_STONE_STALACTITE, Blocks.END_STONE); public static final DefaultFeature END_STONE_STALAGMITE = new StalactiteFeature(false, EndBlocks.END_STONE_STALACTITE, Blocks.END_STONE); public static final DefaultFeature END_STONE_STALACTITE_CAVEMOSS = new StalactiteFeature(true, EndBlocks.END_STONE_STALACTITE_CAVEMOSS, Blocks.END_STONE, EndBlocks.CAVE_MOSS); diff --git a/src/main/java/ru/betterend/world/biome/cave/LushAuroraCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/LushAuroraCaveBiome.java index 5cf745fa..d6052b44 100644 --- a/src/main/java/ru/betterend/world/biome/cave/LushAuroraCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/LushAuroraCaveBiome.java @@ -29,6 +29,7 @@ public class LushAuroraCaveBiome extends EndCaveBiome { this.addCeilFeature(EndFeatures.CAVE_BUSH, 1); this.addCeilFeature(EndFeatures.CAVE_PUMPKIN, 1); this.addCeilFeature(EndFeatures.RUBINEA, 3); + this.addCeilFeature(EndFeatures.MAGNULA, 1); this.addCeilFeature(EndFeatures.END_STONE_STALACTITE_CAVEMOSS, 10); } diff --git a/src/main/resources/assets/betterend/blockstates/magnula.json b/src/main/resources/assets/betterend/blockstates/magnula.json new file mode 100644 index 00000000..327b9ae0 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/magnula.json @@ -0,0 +1,7 @@ +{ + "variants": { + "shape=top": { "model": "betterend:block/magnula_middle" }, + "shape=middle": { "model": "betterend:block/magnula_middle" }, + "shape=bottom": { "model": "betterend:block/magnula_bottom" } + } +} diff --git a/src/main/resources/assets/betterend/blockstates/neon_cactus.json b/src/main/resources/assets/betterend/blockstates/neon_cactus.json new file mode 100644 index 00000000..d72dcb4c --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/neon_cactus.json @@ -0,0 +1,24 @@ +{ + "variants": { + "shape=bottom,facing=up": { "model": "betterend:block/neon_cactus_big" }, + "shape=bottom,facing=down": { "model": "betterend:block/neon_cactus_big", "x": 180 }, + "shape=bottom,facing=north": { "model": "betterend:block/neon_cactus_big", "x": 90 }, + "shape=bottom,facing=south": { "model": "betterend:block/neon_cactus_big", "x": 90, "y": 180 }, + "shape=bottom,facing=east": { "model": "betterend:block/neon_cactus_big", "x": 90, "y": 90 }, + "shape=bottom,facing=west": { "model": "betterend:block/neon_cactus_big", "x": 90, "y": 270 }, + + "shape=middle,facing=up": { "model": "betterend:block/neon_cactus_medium" }, + "shape=middle,facing=down": { "model": "betterend:block/neon_cactus_medium", "x": 180 }, + "shape=middle,facing=north": { "model": "betterend:block/neon_cactus_medium", "x": 90 }, + "shape=middle,facing=south": { "model": "betterend:block/neon_cactus_medium", "x": 90, "y": 180 }, + "shape=middle,facing=east": { "model": "betterend:block/neon_cactus_medium", "x": 90, "y": 90 }, + "shape=middle,facing=west": { "model": "betterend:block/neon_cactus_medium", "x": 90, "y": 270 }, + + "shape=top,facing=up": { "model": "betterend:block/neon_cactus_small" }, + "shape=top,facing=down": { "model": "betterend:block/neon_cactus_small", "x": 180 }, + "shape=top,facing=north": { "model": "betterend:block/neon_cactus_small", "x": 90 }, + "shape=top,facing=south": { "model": "betterend:block/neon_cactus_small", "x": 90, "y": 180 }, + "shape=top,facing=east": { "model": "betterend:block/neon_cactus_small", "x": 90, "y": 90 }, + "shape=top,facing=west": { "model": "betterend:block/neon_cactus_small", "x": 90, "y": 270 } + } +} diff --git a/src/main/resources/assets/betterend/materialmaps/block/neon_cactus.json b/src/main/resources/assets/betterend/materialmaps/block/neon_cactus.json new file mode 100644 index 00000000..36db9946 --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/block/neon_cactus.json @@ -0,0 +1,3 @@ +{ + "defaultMaterial": "betterend:glow_50" +} diff --git a/src/main/resources/assets/betterend/models/block/magnula_bottom.json b/src/main/resources/assets/betterend/models/block/magnula_bottom.json new file mode 100644 index 00000000..7845801a --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/magnula_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/magnula_bottom" + } +} diff --git a/src/main/resources/assets/betterend/models/block/magnula_middle.json b/src/main/resources/assets/betterend/models/block/magnula_middle.json new file mode 100644 index 00000000..75c4a5f8 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/magnula_middle.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "betterend:block/magnula" + } +} diff --git a/src/main/resources/assets/betterend/models/block/neon_cactus_big.json b/src/main/resources/assets/betterend/models/block/neon_cactus_big.json new file mode 100644 index 00000000..1c42b356 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/neon_cactus_big.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "betterend:block/neon_cactus_big_top", + "side": "betterend:block/neon_cactus_big_side" + } +} diff --git a/src/main/resources/assets/betterend/models/block/neon_cactus_medium.json b/src/main/resources/assets/betterend/models/block/neon_cactus_medium.json new file mode 100644 index 00000000..0c8dded1 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/neon_cactus_medium.json @@ -0,0 +1,58 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/neon_cactus_small_side", + "side": "betterend:block/neon_cactus_medium_side", + "top": "betterend:block/neon_cactus_medium_top" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 2, 0, 2 ], + "to": [ 14, 16, 14 ], + "shade": false, + "faces": { + "up": { "uv": [ 4, 4, 12, 12 ], "texture": "#top" }, + "north": { "uv": [ 2, 0, 14, 16 ], "texture": "#side" }, + "south": { "uv": [ 2, 0, 14, 16 ], "texture": "#side" }, + "west": { "uv": [ 2, 0, 14, 16 ], "texture": "#side" }, + "east": { "uv": [ 2, 0, 14, 16 ], "texture": "#side" } + } + }, + { + "__comment": "PlaneX2", + "from": [ 0, 0, 0 ], + "to": [ 0.001, 16, 22.5 ], + "rotation": { "origin": [ 0, 0, 0 ], "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": [ 16, 0, 0 ], + "to": [ 16.001, 16, 22.5 ], + "rotation": { "origin": [ 16, 0, 0 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" } + } + }, + { + "__comment": "Box1", + "from": [ 2, -2, 2 ], + "to": [ 14, 0, 14 ], + "shade": false, + "faces": { + "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#top" }, + "north": { "uv": [ 2, 0, 14, 2 ], "texture": "#side" }, + "south": { "uv": [ 2, 0, 14, 2 ], "texture": "#side" }, + "west": { "uv": [ 2, 0, 14, 2 ], "texture": "#side" }, + "east": { "uv": [ 2, 0, 14, 2 ], "texture": "#side" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/neon_cactus_small.json b/src/main/resources/assets/betterend/models/block/neon_cactus_small.json new file mode 100644 index 00000000..91da5dc6 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/neon_cactus_small.json @@ -0,0 +1,58 @@ +{ + "__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", + "top": "betterend:block/neon_cactus_small_top" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 4, 0, 4 ], + "to": [ 12, 16, 12 ], + "shade": false, + "faces": { + "up": { "uv": [ 4, 4, 12, 12 ], "texture": "#top" }, + "north": { "uv": [ 4, 0, 12, 16 ], "texture": "#side" }, + "south": { "uv": [ 4, 0, 12, 16 ], "texture": "#side" }, + "west": { "uv": [ 4, 0, 12, 16 ], "texture": "#side" }, + "east": { "uv": [ 4, 0, 12, 16 ], "texture": "#side" } + } + }, + { + "__comment": "PlaneX2", + "from": [ 0, 0, 0 ], + "to": [ 0.001, 16, 22.5 ], + "rotation": { "origin": [ 0, 0, 0 ], "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": [ 16, 0, 0 ], + "to": [ 16.001, 16, 22.5 ], + "rotation": { "origin": [ 16, 0, 0 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#side" } + } + }, + { + "__comment": "Box1", + "from": [ 4, -4, 4 ], + "to": [ 12, 0, 12 ], + "shade": false, + "faces": { + "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#top" }, + "north": { "uv": [ 4, 0, 12, 4 ], "texture": "#side" }, + "south": { "uv": [ 4, 0, 12, 4 ], "texture": "#side" }, + "west": { "uv": [ 4, 0, 12, 4 ], "texture": "#side" }, + "east": { "uv": [ 4, 0, 12, 4 ], "texture": "#side" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/block/rubinea_bottom.json b/src/main/resources/assets/betterend/models/block/rubinea_bottom.json index 37fb8bb5..7a860b43 100644 --- a/src/main/resources/assets/betterend/models/block/rubinea_bottom.json +++ b/src/main/resources/assets/betterend/models/block/rubinea_bottom.json @@ -1,6 +1,6 @@ { - "parent": "betterend:block/cross_no_distortion", + "parent": "block/cross", "textures": { - "texture": "betterend:block/rubinea_bottom" + "cross": "betterend:block/rubinea_bottom" } } diff --git a/src/main/resources/assets/betterend/models/block/rubinea_middle.json b/src/main/resources/assets/betterend/models/block/rubinea_middle.json index b99830f1..9f15fd91 100644 --- a/src/main/resources/assets/betterend/models/block/rubinea_middle.json +++ b/src/main/resources/assets/betterend/models/block/rubinea_middle.json @@ -1,6 +1,6 @@ { - "parent": "betterend:block/cross_no_distortion", + "parent": "block/cross", "textures": { - "texture": "betterend:block/rubinea" + "cross": "betterend:block/rubinea" } } diff --git a/src/main/resources/assets/betterend/models/item/magnula.json b/src/main/resources/assets/betterend/models/item/magnula.json new file mode 100644 index 00000000..f5c0f11c --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/magnula.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:block/magnula_bottom" + } +} diff --git a/src/main/resources/assets/betterend/textures/block/chorus_plant.png b/src/main/resources/assets/betterend/textures/block/chorus_plant.png index 2bf9e6f2..828b15af 100644 Binary files a/src/main/resources/assets/betterend/textures/block/chorus_plant.png and b/src/main/resources/assets/betterend/textures/block/chorus_plant.png differ diff --git a/src/main/resources/assets/betterend/textures/block/magnula.png b/src/main/resources/assets/betterend/textures/block/magnula.png new file mode 100644 index 00000000..7fe91460 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/magnula.png differ diff --git a/src/main/resources/assets/betterend/textures/block/magnula_bottom.png b/src/main/resources/assets/betterend/textures/block/magnula_bottom.png new file mode 100644 index 00000000..eda6b963 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/magnula_bottom.png differ diff --git a/src/main/resources/assets/betterend/textures/block/neon_cactus_big_side.png b/src/main/resources/assets/betterend/textures/block/neon_cactus_big_side.png new file mode 100644 index 00000000..2c681c7d Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/neon_cactus_big_side.png differ diff --git a/src/main/resources/assets/betterend/textures/block/neon_cactus_big_top.png b/src/main/resources/assets/betterend/textures/block/neon_cactus_big_top.png new file mode 100644 index 00000000..f3c4c0a8 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/neon_cactus_big_top.png differ diff --git a/src/main/resources/assets/betterend/textures/block/neon_cactus_medium_side.png b/src/main/resources/assets/betterend/textures/block/neon_cactus_medium_side.png new file mode 100644 index 00000000..1323e564 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/neon_cactus_medium_side.png differ diff --git a/src/main/resources/assets/betterend/textures/block/neon_cactus_medium_top.png b/src/main/resources/assets/betterend/textures/block/neon_cactus_medium_top.png new file mode 100644 index 00000000..74f13b76 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/neon_cactus_medium_top.png differ diff --git a/src/main/resources/assets/betterend/textures/block/neon_cactus_small_side.png b/src/main/resources/assets/betterend/textures/block/neon_cactus_small_side.png new file mode 100644 index 00000000..a1ea7629 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/neon_cactus_small_side.png differ diff --git a/src/main/resources/assets/betterend/textures/block/neon_cactus_small_top.png b/src/main/resources/assets/betterend/textures/block/neon_cactus_small_top.png new file mode 100644 index 00000000..23414dfe Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/neon_cactus_small_top.png differ