From 6b8422dae32b5973c3edad42acc57e6a8994b56f Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 21 Jan 2021 08:05:35 +0300 Subject: [PATCH] Thallasium Chandelier (floor, WIP) --- .../ru/betterend/blocks/AeterniumBlock.java | 4 +- .../java/ru/betterend/blocks/AmberBlock.java | 4 +- .../blocks/AncientEmeraldIceBlock.java | 4 +- .../blocks/BlueVineLanternBlock.java | 4 +- .../ru/betterend/blocks/BrimstoneBlock.java | 4 +- .../ru/betterend/blocks/CapsacisCapBlock.java | 4 +- .../blocks/DenseEmeraldIceBlock.java | 4 +- .../ru/betterend/blocks/DenseSnowBlock.java | 4 +- .../betterend/blocks/EndLotusLeafBlock.java | 4 +- .../betterend/blocks/EndLotusStemBlock.java | 4 +- .../ru/betterend/blocks/EndPathBlock.java | 4 +- .../ru/betterend/blocks/EndStoneBlock.java | 4 +- .../ru/betterend/blocks/EndTerrainBlock.java | 4 +- .../java/ru/betterend/blocks/EnderBlock.java | 4 +- .../blocks/GlowingPillarLuminophorBlock.java | 4 +- .../blocks/HelixTreeLeavesBlock.java | 4 +- .../betterend/blocks/HydraluxPetalBlock.java | 4 +- .../blocks/HydrothermalVentBlock.java | 4 +- .../ru/betterend/blocks/LumecornBlock.java | 4 +- .../betterend/blocks/MengerSpongeBlock.java | 4 +- .../blocks/MengerSpongeWetBlock.java | 4 +- .../blocks/MossyGlowshroomCapBlock.java | 4 +- .../MossyGlowshroomHymenophoreBlock.java | 4 +- .../betterend/blocks/RespawnObeliskBlock.java | 4 +- .../ru/betterend/blocks/RunedFlavolite.java | 4 +- .../betterend/blocks/SilkMothNestBlock.java | 4 +- .../ru/betterend/blocks/TerminiteBlock.java | 4 +- .../blocks/ThallasiumChandelierBlock.java | 47 +++++++ .../blocks/UmbrellaTreeClusterBlock.java | 4 +- .../blocks/UmbrellaTreeClusterEmptyBlock.java | 4 +- .../betterend/blocks/basis/AttachedBlock.java | 2 +- .../basis/{BaseBlock.java => BlockBase.java} | 4 +- ...lockNotFull.java => BlockBaseNotFull.java} | 4 +- .../blocks/basis/DoublePlantBlock.java | 2 +- .../blocks/basis/EndBookshelfBlock.java | 2 +- .../blocks/basis/EndLadderBlock.java | 2 +- .../blocks/basis/EndLanternBlock.java | 2 +- .../betterend/blocks/basis/EndPlantBlock.java | 2 +- .../blocks/basis/FeatureSaplingBlock.java | 2 +- .../betterend/blocks/basis/PedestalBlock.java | 2 +- .../blocks/basis/SimpleLeavesBlock.java | 2 +- .../blocks/basis/UnderwaterPlantBlock.java | 2 +- .../blocks/basis/UpDownPlantBlock.java | 2 +- .../ru/betterend/blocks/basis/VineBlock.java | 2 +- .../blocks/complex/MetalMaterial.java | 8 +- .../blocks/complex/StoneMaterial.java | 10 +- .../blocks/complex/WoodenMaterial.java | 4 +- .../java/ru/betterend/registry/EndBlocks.java | 3 + .../blockstates/thallasium_chandelier.json | 10 ++ .../assets/betterend/lang/en_us.json | 3 +- .../assets/betterend/lang/ru_ru.json | 3 +- .../block/thallasium_chandelier.json | 3 + .../assets/betterend/materials/glow_60.json | 10 ++ .../models/block/thallasium_chandelier.json | 132 ++++++++++++++++++ .../models/item/thallasium_chandelier.json | 6 + .../betterend/shaders/material/glow_65.frag | 6 + .../textures/block/thallasium_chandelier.png | Bin 0 -> 543 bytes .../textures/item/thallasium_chandelier.png | Bin 0 -> 366 bytes 58 files changed, 306 insertions(+), 87 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/ThallasiumChandelierBlock.java rename src/main/java/ru/betterend/blocks/basis/{BaseBlock.java => BlockBase.java} (88%) rename src/main/java/ru/betterend/blocks/basis/{BaseBlockNotFull.java => BlockBaseNotFull.java} (81%) create mode 100644 src/main/resources/assets/betterend/blockstates/thallasium_chandelier.json create mode 100644 src/main/resources/assets/betterend/materialmaps/block/thallasium_chandelier.json create mode 100644 src/main/resources/assets/betterend/materials/glow_60.json create mode 100644 src/main/resources/assets/betterend/models/block/thallasium_chandelier.json create mode 100644 src/main/resources/assets/betterend/models/item/thallasium_chandelier.json create mode 100644 src/main/resources/assets/betterend/shaders/material/glow_65.frag create mode 100644 src/main/resources/assets/betterend/textures/block/thallasium_chandelier.png create mode 100644 src/main/resources/assets/betterend/textures/item/thallasium_chandelier.png diff --git a/src/main/java/ru/betterend/blocks/AeterniumBlock.java b/src/main/java/ru/betterend/blocks/AeterniumBlock.java index 580971f0..e5e11578 100644 --- a/src/main/java/ru/betterend/blocks/AeterniumBlock.java +++ b/src/main/java/ru/betterend/blocks/AeterniumBlock.java @@ -9,9 +9,9 @@ import net.minecraft.block.MaterialColor; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; -public class AeterniumBlock extends BaseBlock { +public class AeterniumBlock extends BlockBase { public AeterniumBlock() { super(FabricBlockSettings.of(Material.METAL, MaterialColor.GRAY) diff --git a/src/main/java/ru/betterend/blocks/AmberBlock.java b/src/main/java/ru/betterend/blocks/AmberBlock.java index ccb5c7e1..54e7ee94 100644 --- a/src/main/java/ru/betterend/blocks/AmberBlock.java +++ b/src/main/java/ru/betterend/blocks/AmberBlock.java @@ -3,9 +3,9 @@ package ru.betterend.blocks; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Blocks; import net.minecraft.block.MaterialColor; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; -public class AmberBlock extends BaseBlock { +public class AmberBlock extends BlockBase { public AmberBlock() { super(FabricBlockSettings.copyOf(Blocks.DIAMOND_BLOCK).materialColor(MaterialColor.YELLOW)); } diff --git a/src/main/java/ru/betterend/blocks/AncientEmeraldIceBlock.java b/src/main/java/ru/betterend/blocks/AncientEmeraldIceBlock.java index cf79803a..7c1395d3 100644 --- a/src/main/java/ru/betterend/blocks/AncientEmeraldIceBlock.java +++ b/src/main/java/ru/betterend/blocks/AncientEmeraldIceBlock.java @@ -8,13 +8,13 @@ import net.minecraft.block.Blocks; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndParticles; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; -public class AncientEmeraldIceBlock extends BaseBlock { +public class AncientEmeraldIceBlock extends BlockBase { public AncientEmeraldIceBlock() { super(FabricBlockSettings.copyOf(Blocks.BLUE_ICE).ticksRandomly()); } diff --git a/src/main/java/ru/betterend/blocks/BlueVineLanternBlock.java b/src/main/java/ru/betterend/blocks/BlueVineLanternBlock.java index d89b2cda..a79781a6 100644 --- a/src/main/java/ru/betterend/blocks/BlueVineLanternBlock.java +++ b/src/main/java/ru/betterend/blocks/BlueVineLanternBlock.java @@ -13,10 +13,10 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.registry.EndBlocks; -public class BlueVineLanternBlock extends BaseBlock { +public class BlueVineLanternBlock extends BlockBase { public static final BooleanProperty NATURAL = BlockProperties.NATURAL; public BlueVineLanternBlock() { diff --git a/src/main/java/ru/betterend/blocks/BrimstoneBlock.java b/src/main/java/ru/betterend/blocks/BrimstoneBlock.java index 8d213b02..4ddf7416 100644 --- a/src/main/java/ru/betterend/blocks/BrimstoneBlock.java +++ b/src/main/java/ru/betterend/blocks/BrimstoneBlock.java @@ -13,11 +13,11 @@ import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; -public class BrimstoneBlock extends BaseBlock { +public class BrimstoneBlock extends BlockBase { public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVE; public BrimstoneBlock() { diff --git a/src/main/java/ru/betterend/blocks/CapsacisCapBlock.java b/src/main/java/ru/betterend/blocks/CapsacisCapBlock.java index 514bb05f..a0ed6f46 100644 --- a/src/main/java/ru/betterend/blocks/CapsacisCapBlock.java +++ b/src/main/java/ru/betterend/blocks/CapsacisCapBlock.java @@ -8,11 +8,11 @@ import net.minecraft.block.MaterialColor; import net.minecraft.item.ItemPlacementContext; import net.minecraft.state.StateManager; import net.minecraft.state.property.IntProperty; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.util.MHelper; -public class CapsacisCapBlock extends BaseBlock { +public class CapsacisCapBlock extends BlockBase { private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(0); public static final IntProperty COLOR = BlockProperties.COLOR; diff --git a/src/main/java/ru/betterend/blocks/DenseEmeraldIceBlock.java b/src/main/java/ru/betterend/blocks/DenseEmeraldIceBlock.java index e94b0a6f..48c1059a 100644 --- a/src/main/java/ru/betterend/blocks/DenseEmeraldIceBlock.java +++ b/src/main/java/ru/betterend/blocks/DenseEmeraldIceBlock.java @@ -2,11 +2,11 @@ package ru.betterend.blocks; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Blocks; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; -public class DenseEmeraldIceBlock extends BaseBlock implements IRenderTypeable { +public class DenseEmeraldIceBlock extends BlockBase implements IRenderTypeable { public DenseEmeraldIceBlock() { super(FabricBlockSettings.copyOf(Blocks.PACKED_ICE)); } diff --git a/src/main/java/ru/betterend/blocks/DenseSnowBlock.java b/src/main/java/ru/betterend/blocks/DenseSnowBlock.java index a408291f..d0c9ecf6 100644 --- a/src/main/java/ru/betterend/blocks/DenseSnowBlock.java +++ b/src/main/java/ru/betterend/blocks/DenseSnowBlock.java @@ -3,9 +3,9 @@ package ru.betterend.blocks; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Material; import net.minecraft.sound.BlockSoundGroup; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; -public class DenseSnowBlock extends BaseBlock { +public class DenseSnowBlock extends BlockBase { public DenseSnowBlock() { super(FabricBlockSettings.of(Material.SNOW_BLOCK).strength(0.2F).sounds(BlockSoundGroup.SNOW)); } diff --git a/src/main/java/ru/betterend/blocks/EndLotusLeafBlock.java b/src/main/java/ru/betterend/blocks/EndLotusLeafBlock.java index 2281bb7e..cb15f1e5 100644 --- a/src/main/java/ru/betterend/blocks/EndLotusLeafBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLotusLeafBlock.java @@ -21,13 +21,13 @@ import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.WorldView; import ru.betterend.blocks.BlockProperties.TripleShape; -import ru.betterend.blocks.basis.BaseBlockNotFull; +import ru.betterend.blocks.basis.BlockBaseNotFull; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; -public class EndLotusLeafBlock extends BaseBlockNotFull implements IRenderTypeable { +public class EndLotusLeafBlock extends BlockBaseNotFull implements IRenderTypeable { public static final EnumProperty HORIZONTAL_FACING = Properties.HORIZONTAL_FACING; public static final EnumProperty SHAPE = BlockProperties.TRIPLE_SHAPE; private static final VoxelShape VSHAPE = Block.createCuboidShape(0, 0, 0, 16, 1, 16); diff --git a/src/main/java/ru/betterend/blocks/EndLotusStemBlock.java b/src/main/java/ru/betterend/blocks/EndLotusStemBlock.java index 62acf529..33a8d215 100644 --- a/src/main/java/ru/betterend/blocks/EndLotusStemBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLotusStemBlock.java @@ -26,12 +26,12 @@ import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.WorldAccess; import ru.betterend.blocks.BlockProperties.TripleShape; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.util.BlocksHelper; -public class EndLotusStemBlock extends BaseBlock implements Waterloggable, IRenderTypeable { +public class EndLotusStemBlock extends BlockBase implements Waterloggable, IRenderTypeable { public static final EnumProperty FACING = Properties.FACING; public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; public static final BooleanProperty LEAF = BooleanProperty.of("leaf"); diff --git a/src/main/java/ru/betterend/blocks/EndPathBlock.java b/src/main/java/ru/betterend/blocks/EndPathBlock.java index 4b3a28bf..acfb6c53 100644 --- a/src/main/java/ru/betterend/blocks/EndPathBlock.java +++ b/src/main/java/ru/betterend/blocks/EndPathBlock.java @@ -16,9 +16,9 @@ import net.minecraft.loot.context.LootContextParameters; import net.minecraft.util.math.BlockPos; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; -import ru.betterend.blocks.basis.BaseBlockNotFull; +import ru.betterend.blocks.basis.BlockBaseNotFull; -public class EndPathBlock extends BaseBlockNotFull { +public class EndPathBlock extends BlockBaseNotFull { private static final VoxelShape SHAPE = Block.createCuboidShape(0, 0, 0, 16, 15, 16); public EndPathBlock(Block source) { diff --git a/src/main/java/ru/betterend/blocks/EndStoneBlock.java b/src/main/java/ru/betterend/blocks/EndStoneBlock.java index 399333c1..4bfa9cb4 100644 --- a/src/main/java/ru/betterend/blocks/EndStoneBlock.java +++ b/src/main/java/ru/betterend/blocks/EndStoneBlock.java @@ -4,9 +4,9 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Blocks; import net.minecraft.block.MaterialColor; import net.minecraft.sound.BlockSoundGroup; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; -public class EndStoneBlock extends BaseBlock { +public class EndStoneBlock extends BlockBase { public EndStoneBlock(MaterialColor color) { super(FabricBlockSettings.copyOf(Blocks.END_STONE).materialColor(color).sounds(BlockSoundGroup.STONE)); } diff --git a/src/main/java/ru/betterend/blocks/EndTerrainBlock.java b/src/main/java/ru/betterend/blocks/EndTerrainBlock.java index 489fbdd8..3d34f8b3 100644 --- a/src/main/java/ru/betterend/blocks/EndTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/EndTerrainBlock.java @@ -29,9 +29,9 @@ import net.minecraft.util.math.Direction; import net.minecraft.world.World; import net.minecraft.world.WorldView; import net.minecraft.world.chunk.light.ChunkLightProvider; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; -public class EndTerrainBlock extends BaseBlock { +public class EndTerrainBlock extends BlockBase { private Block pathBlock; public EndTerrainBlock(MaterialColor color) { diff --git a/src/main/java/ru/betterend/blocks/EnderBlock.java b/src/main/java/ru/betterend/blocks/EnderBlock.java index e1d1552f..1b80fabd 100644 --- a/src/main/java/ru/betterend/blocks/EnderBlock.java +++ b/src/main/java/ru/betterend/blocks/EnderBlock.java @@ -9,9 +9,9 @@ import net.minecraft.block.MaterialColor; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; -public class EnderBlock extends BaseBlock { +public class EnderBlock extends BlockBase { public EnderBlock() { super(FabricBlockSettings.of(Material.STONE, MaterialColor.field_25708) diff --git a/src/main/java/ru/betterend/blocks/GlowingPillarLuminophorBlock.java b/src/main/java/ru/betterend/blocks/GlowingPillarLuminophorBlock.java index 15f2f295..5e0f9d58 100644 --- a/src/main/java/ru/betterend/blocks/GlowingPillarLuminophorBlock.java +++ b/src/main/java/ru/betterend/blocks/GlowingPillarLuminophorBlock.java @@ -14,10 +14,10 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.registry.EndBlocks; -public class GlowingPillarLuminophorBlock extends BaseBlock { +public class GlowingPillarLuminophorBlock extends BlockBase { public static final BooleanProperty NATURAL = BooleanProperty.of("natural"); public GlowingPillarLuminophorBlock() { diff --git a/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java b/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java index 48e03300..7d4eaba6 100644 --- a/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java +++ b/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java @@ -23,13 +23,13 @@ import net.minecraft.sound.BlockSoundGroup; import net.minecraft.state.StateManager; import net.minecraft.state.property.IntProperty; import net.minecraft.util.math.MathHelper; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.interfaces.IColorProvider; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.util.MHelper; -public class HelixTreeLeavesBlock extends BaseBlock implements IColorProvider { +public class HelixTreeLeavesBlock extends BlockBase implements IColorProvider { public static final IntProperty COLOR = BlockProperties.COLOR; private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(0); diff --git a/src/main/java/ru/betterend/blocks/HydraluxPetalBlock.java b/src/main/java/ru/betterend/blocks/HydraluxPetalBlock.java index 81722164..b514b7ef 100644 --- a/src/main/java/ru/betterend/blocks/HydraluxPetalBlock.java +++ b/src/main/java/ru/betterend/blocks/HydraluxPetalBlock.java @@ -8,9 +8,9 @@ import net.minecraft.entity.Entity; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; -public class HydraluxPetalBlock extends BaseBlock { +public class HydraluxPetalBlock extends BlockBase { public HydraluxPetalBlock() { this(FabricBlockSettings.of(Material.PLANT) .materialColor(MaterialColor.SPRUCE) diff --git a/src/main/java/ru/betterend/blocks/HydrothermalVentBlock.java b/src/main/java/ru/betterend/blocks/HydrothermalVentBlock.java index 0b2807c6..262cad10 100644 --- a/src/main/java/ru/betterend/blocks/HydrothermalVentBlock.java +++ b/src/main/java/ru/betterend/blocks/HydrothermalVentBlock.java @@ -36,13 +36,13 @@ import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import ru.betterend.blocks.basis.BaseBlockNotFull; +import ru.betterend.blocks.basis.BlockBaseNotFull; import ru.betterend.blocks.entities.BlockEntityHydrothermalVent; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndParticles; import ru.betterend.util.BlocksHelper; -public class HydrothermalVentBlock extends BaseBlockNotFull implements BlockEntityProvider, FluidFillable, Waterloggable { +public class HydrothermalVentBlock extends BlockBaseNotFull implements BlockEntityProvider, FluidFillable, Waterloggable { public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVE; private static final VoxelShape SHAPE = Block.createCuboidShape(1, 1, 1, 15, 16, 15); diff --git a/src/main/java/ru/betterend/blocks/LumecornBlock.java b/src/main/java/ru/betterend/blocks/LumecornBlock.java index 309fb3bf..0011b4ce 100644 --- a/src/main/java/ru/betterend/blocks/LumecornBlock.java +++ b/src/main/java/ru/betterend/blocks/LumecornBlock.java @@ -21,7 +21,7 @@ import net.minecraft.world.BlockView; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; import ru.betterend.blocks.BlockProperties.LumecornShape; -import ru.betterend.blocks.basis.BaseBlockNotFull; +import ru.betterend.blocks.basis.BlockBaseNotFull; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndBlocks; @@ -29,7 +29,7 @@ import ru.betterend.registry.EndItems; import ru.betterend.registry.EndTags; import ru.betterend.util.MHelper; -public class LumecornBlock extends BaseBlockNotFull implements IRenderTypeable { +public class LumecornBlock extends BlockBaseNotFull implements IRenderTypeable { public static final EnumProperty SHAPE = EnumProperty.of("shape", LumecornShape.class); private static final VoxelShape SHAPE_BOTTOM = Block.createCuboidShape(6, 0, 6, 10, 16, 10); private static final VoxelShape SHAPE_TOP = Block.createCuboidShape(6, 0, 6, 10, 8, 10); diff --git a/src/main/java/ru/betterend/blocks/MengerSpongeBlock.java b/src/main/java/ru/betterend/blocks/MengerSpongeBlock.java index d7cffe8f..abefc6e1 100644 --- a/src/main/java/ru/betterend/blocks/MengerSpongeBlock.java +++ b/src/main/java/ru/betterend/blocks/MengerSpongeBlock.java @@ -19,12 +19,12 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; -import ru.betterend.blocks.basis.BaseBlockNotFull; +import ru.betterend.blocks.basis.BlockBaseNotFull; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndBlocks; -public class MengerSpongeBlock extends BaseBlockNotFull implements IRenderTypeable { +public class MengerSpongeBlock extends BlockBaseNotFull implements IRenderTypeable { public MengerSpongeBlock() { super(FabricBlockSettings.copyOf(Blocks.SPONGE).nonOpaque()); } diff --git a/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java b/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java index 8439dfd3..a2a5a41c 100644 --- a/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java +++ b/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java @@ -16,13 +16,13 @@ import net.minecraft.sound.SoundEvents; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.World; -import ru.betterend.blocks.basis.BaseBlockNotFull; +import ru.betterend.blocks.basis.BlockBaseNotFull; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; -public class MengerSpongeWetBlock extends BaseBlockNotFull implements IRenderTypeable { +public class MengerSpongeWetBlock extends BlockBaseNotFull implements IRenderTypeable { public MengerSpongeWetBlock() { super(FabricBlockSettings.copyOf(Blocks.WET_SPONGE).nonOpaque()); } diff --git a/src/main/java/ru/betterend/blocks/MossyGlowshroomCapBlock.java b/src/main/java/ru/betterend/blocks/MossyGlowshroomCapBlock.java index 9aabe27f..af9338a4 100644 --- a/src/main/java/ru/betterend/blocks/MossyGlowshroomCapBlock.java +++ b/src/main/java/ru/betterend/blocks/MossyGlowshroomCapBlock.java @@ -9,10 +9,10 @@ import net.minecraft.item.ItemPlacementContext; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.registry.EndBlocks; -public class MossyGlowshroomCapBlock extends BaseBlock { +public class MossyGlowshroomCapBlock extends BlockBase { public static final BooleanProperty TRANSITION = BooleanProperty.of("transition"); public MossyGlowshroomCapBlock() { diff --git a/src/main/java/ru/betterend/blocks/MossyGlowshroomHymenophoreBlock.java b/src/main/java/ru/betterend/blocks/MossyGlowshroomHymenophoreBlock.java index a74c85bf..5f136023 100644 --- a/src/main/java/ru/betterend/blocks/MossyGlowshroomHymenophoreBlock.java +++ b/src/main/java/ru/betterend/blocks/MossyGlowshroomHymenophoreBlock.java @@ -4,9 +4,9 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.block.Material; import net.minecraft.sound.BlockSoundGroup; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; -public class MossyGlowshroomHymenophoreBlock extends BaseBlock { +public class MossyGlowshroomHymenophoreBlock extends BlockBase { public MossyGlowshroomHymenophoreBlock() { super(FabricBlockSettings.of(Material.WOOD).breakByTool(FabricToolTags.AXES).sounds(BlockSoundGroup.WART_BLOCK).luminance(15)); } diff --git a/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java b/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java index 8443c9f3..269ddc43 100644 --- a/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java +++ b/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java @@ -36,7 +36,7 @@ import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; import ru.betterend.blocks.BlockProperties.TripleShape; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IColorProvider; import ru.betterend.interfaces.IRenderTypeable; @@ -46,7 +46,7 @@ import ru.betterend.registry.EndItems; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; -public class RespawnObeliskBlock extends BaseBlock implements IColorProvider, IRenderTypeable { +public class RespawnObeliskBlock extends BlockBase implements IColorProvider, IRenderTypeable { private static final VoxelShape VOXEL_SHAPE_BOTTOM = Block.createCuboidShape(1, 0, 1, 15, 16, 15); private static final VoxelShape VOXEL_SHAPE_MIDDLE_TOP = Block.createCuboidShape(2, 0, 2, 14, 16, 14); diff --git a/src/main/java/ru/betterend/blocks/RunedFlavolite.java b/src/main/java/ru/betterend/blocks/RunedFlavolite.java index 4ce7a552..9e4b18d4 100644 --- a/src/main/java/ru/betterend/blocks/RunedFlavolite.java +++ b/src/main/java/ru/betterend/blocks/RunedFlavolite.java @@ -6,10 +6,10 @@ import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.registry.EndBlocks; -public class RunedFlavolite extends BaseBlock { +public class RunedFlavolite extends BlockBase { public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVE; public RunedFlavolite() { diff --git a/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java b/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java index cb3588e6..7ed3e427 100644 --- a/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java +++ b/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java @@ -34,14 +34,14 @@ import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.client.render.ERenderLayer; import ru.betterend.entity.SilkMothEntity; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndEntities; import ru.betterend.util.BlocksHelper; -public class SilkMothNestBlock extends BaseBlock implements IRenderTypeable { +public class SilkMothNestBlock extends BlockBase implements IRenderTypeable { public static final BooleanProperty ACTIVE = BlockProperties.ACTIVE; public static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; public static final IntProperty FULLNESS = BlockProperties.FULLNESS; diff --git a/src/main/java/ru/betterend/blocks/TerminiteBlock.java b/src/main/java/ru/betterend/blocks/TerminiteBlock.java index 627fe65f..204a2e55 100644 --- a/src/main/java/ru/betterend/blocks/TerminiteBlock.java +++ b/src/main/java/ru/betterend/blocks/TerminiteBlock.java @@ -4,9 +4,9 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; import net.minecraft.sound.BlockSoundGroup; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; -public class TerminiteBlock extends BaseBlock { +public class TerminiteBlock extends BlockBase { public TerminiteBlock() { super(FabricBlockSettings.of(Material.METAL, MaterialColor.field_25708) .hardness(7F) diff --git a/src/main/java/ru/betterend/blocks/ThallasiumChandelierBlock.java b/src/main/java/ru/betterend/blocks/ThallasiumChandelierBlock.java new file mode 100644 index 00000000..d11573f7 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/ThallasiumChandelierBlock.java @@ -0,0 +1,47 @@ +package ru.betterend.blocks; + +import java.util.EnumMap; + +import com.google.common.collect.Maps; + +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.MaterialColor; +import net.minecraft.block.ShapeContext; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import ru.betterend.blocks.basis.AttachedBlock; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; + +public class ThallasiumChandelierBlock extends AttachedBlock implements IRenderTypeable { + private static final EnumMap BOUNDING_SHAPES = Maps.newEnumMap(Direction.class); + + public ThallasiumChandelierBlock() { + super(FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(MaterialColor.BLUE).noCollision().nonOpaque().requiresTool().luminance(15)); + } + + @Override + public ERenderLayer getRenderLayer() { + return ERenderLayer.CUTOUT; + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext ePos) { + return BOUNDING_SHAPES.get(state.get(FACING)); + } + + static { + BOUNDING_SHAPES.put(Direction.UP, Block.createCuboidShape(5, 0, 5, 11, 13, 11)); + BOUNDING_SHAPES.put(Direction.DOWN, Block.createCuboidShape(5, 3, 5, 11, 16, 11)); + BOUNDING_SHAPES.put(Direction.NORTH, VoxelShapes.cuboid(0.0, 0.0, 0.5, 1.0, 1.0, 1.0)); + BOUNDING_SHAPES.put(Direction.SOUTH, VoxelShapes.cuboid(0.0, 0.0, 0.0, 1.0, 1.0, 0.5)); + BOUNDING_SHAPES.put(Direction.WEST, VoxelShapes.cuboid(0.5, 0.0, 0.0, 1.0, 1.0, 1.0)); + BOUNDING_SHAPES.put(Direction.EAST, VoxelShapes.cuboid(0.0, 0.0, 0.0, 0.5, 1.0, 1.0)); + } +} diff --git a/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterBlock.java index 55c2d478..e1a6b8a9 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterBlock.java @@ -17,12 +17,12 @@ import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; import ru.betterend.util.BlocksHelper; -public class UmbrellaTreeClusterBlock extends BaseBlock { +public class UmbrellaTreeClusterBlock extends BlockBase { public static final BooleanProperty NATURAL = BlockProperties.NATURAL; public UmbrellaTreeClusterBlock() { diff --git a/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterEmptyBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterEmptyBlock.java index 6cb335b5..29e5ba36 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterEmptyBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterEmptyBlock.java @@ -11,11 +11,11 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; import net.minecraft.util.math.BlockPos; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; -public class UmbrellaTreeClusterEmptyBlock extends BaseBlock { +public class UmbrellaTreeClusterEmptyBlock extends BlockBase { public static final BooleanProperty NATURAL = BlockProperties.NATURAL; public UmbrellaTreeClusterEmptyBlock() { diff --git a/src/main/java/ru/betterend/blocks/basis/AttachedBlock.java b/src/main/java/ru/betterend/blocks/basis/AttachedBlock.java index e5a58779..25b73d13 100644 --- a/src/main/java/ru/betterend/blocks/basis/AttachedBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/AttachedBlock.java @@ -16,7 +16,7 @@ import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; import ru.betterend.util.BlocksHelper; -public abstract class AttachedBlock extends BaseBlockNotFull { +public abstract class AttachedBlock extends BlockBaseNotFull { public static final DirectionProperty FACING = Properties.FACING; public AttachedBlock(Settings settings) { diff --git a/src/main/java/ru/betterend/blocks/basis/BaseBlock.java b/src/main/java/ru/betterend/blocks/basis/BlockBase.java similarity index 88% rename from src/main/java/ru/betterend/blocks/basis/BaseBlock.java rename to src/main/java/ru/betterend/blocks/basis/BlockBase.java index a58755b9..cdebbf74 100644 --- a/src/main/java/ru/betterend/blocks/basis/BaseBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockBase.java @@ -13,8 +13,8 @@ import net.minecraft.util.registry.Registry; import ru.betterend.patterns.BlockPatterned; import ru.betterend.patterns.Patterns; -public class BaseBlock extends Block implements BlockPatterned { - public BaseBlock(Settings settings) { +public class BlockBase extends Block implements BlockPatterned { + public BlockBase(Settings settings) { super(settings); } diff --git a/src/main/java/ru/betterend/blocks/basis/BaseBlockNotFull.java b/src/main/java/ru/betterend/blocks/basis/BlockBaseNotFull.java similarity index 81% rename from src/main/java/ru/betterend/blocks/basis/BaseBlockNotFull.java rename to src/main/java/ru/betterend/blocks/basis/BlockBaseNotFull.java index fb967f7e..dbf23923 100644 --- a/src/main/java/ru/betterend/blocks/basis/BaseBlockNotFull.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockBaseNotFull.java @@ -5,9 +5,9 @@ import net.minecraft.entity.EntityType; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; -public class BaseBlockNotFull extends BaseBlock { +public class BlockBaseNotFull extends BlockBase { - public BaseBlockNotFull(Settings settings) { + public BlockBaseNotFull(Settings settings) { super(settings); } diff --git a/src/main/java/ru/betterend/blocks/basis/DoublePlantBlock.java b/src/main/java/ru/betterend/blocks/basis/DoublePlantBlock.java index e21e6d92..fd8f7570 100644 --- a/src/main/java/ru/betterend/blocks/basis/DoublePlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/DoublePlantBlock.java @@ -40,7 +40,7 @@ import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; -public class DoublePlantBlock extends BaseBlockNotFull implements IRenderTypeable, Fertilizable { +public class DoublePlantBlock extends BlockBaseNotFull implements IRenderTypeable, Fertilizable { private static final VoxelShape SHAPE = Block.createCuboidShape(4, 2, 4, 12, 16, 12); public static final IntProperty ROTATION = BlockProperties.ROTATION; public static final BooleanProperty TOP = BooleanProperty.of("top"); diff --git a/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java b/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java index b275fd37..0916c4b0 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java @@ -17,7 +17,7 @@ import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import ru.betterend.patterns.Patterns; -public class EndBookshelfBlock extends BaseBlock { +public class EndBookshelfBlock extends BlockBase { public EndBookshelfBlock(Block source) { super(FabricBlockSettings.copyOf(source)); } diff --git a/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java b/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java index a7343275..eaade397 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java @@ -31,7 +31,7 @@ import ru.betterend.patterns.BlockPatterned; import ru.betterend.patterns.Patterns; import ru.betterend.util.BlocksHelper; -public class EndLadderBlock extends BaseBlockNotFull implements IRenderTypeable, BlockPatterned { +public class EndLadderBlock extends BlockBaseNotFull implements IRenderTypeable, BlockPatterned { public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; protected static final VoxelShape EAST_SHAPE = Block.createCuboidShape(0.0D, 0.0D, 0.0D, 3.0D, 16.0D, 16.0D); diff --git a/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java b/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java index cb72f15c..79992a35 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java @@ -19,7 +19,7 @@ import net.minecraft.world.BlockView; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -public class EndLanternBlock extends BaseBlockNotFull implements Waterloggable, FluidFillable { +public class EndLanternBlock extends BlockBaseNotFull implements Waterloggable, FluidFillable { public static final BooleanProperty IS_FLOOR = BooleanProperty.of("is_floor"); public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; diff --git a/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java index 136b7346..b684f604 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java @@ -34,7 +34,7 @@ import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndTags; -public class EndPlantBlock extends BaseBlockNotFull implements IRenderTypeable, Fertilizable { +public class EndPlantBlock extends BlockBaseNotFull implements IRenderTypeable, Fertilizable { private static final VoxelShape SHAPE = Block.createCuboidShape(4, 0, 4, 12, 14, 12); public EndPlantBlock() { diff --git a/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java b/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java index fd0b6ab5..7dcf202e 100644 --- a/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java @@ -27,7 +27,7 @@ import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.patterns.Patterns; import ru.betterend.registry.EndTags; -public abstract class FeatureSaplingBlock extends BaseBlockNotFull implements Fertilizable, IRenderTypeable { +public abstract class FeatureSaplingBlock extends BlockBaseNotFull implements Fertilizable, IRenderTypeable { private static final VoxelShape SHAPE = Block.createCuboidShape(4, 0, 4, 12, 14, 12); public FeatureSaplingBlock() { diff --git a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java index 2214bf40..c1011797 100644 --- a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java @@ -43,7 +43,7 @@ import ru.betterend.patterns.Patterns; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; -public class PedestalBlock extends BaseBlockNotFull implements BlockEntityProvider { +public class PedestalBlock extends BlockBaseNotFull implements BlockEntityProvider { public final static EnumProperty STATE = BlockProperties.PEDESTAL_STATE; public static final BooleanProperty HAS_ITEM = BlockProperties.HAS_ITEM; public static final BooleanProperty HAS_LIGHT = BlockProperties.HAS_LIGHT; diff --git a/src/main/java/ru/betterend/blocks/basis/SimpleLeavesBlock.java b/src/main/java/ru/betterend/blocks/basis/SimpleLeavesBlock.java index 4161584a..dff29707 100644 --- a/src/main/java/ru/betterend/blocks/basis/SimpleLeavesBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/SimpleLeavesBlock.java @@ -12,7 +12,7 @@ import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.patterns.Patterns; -public class SimpleLeavesBlock extends BaseBlockNotFull implements IRenderTypeable { +public class SimpleLeavesBlock extends BlockBaseNotFull implements IRenderTypeable { public SimpleLeavesBlock(MaterialColor color) { super(FabricBlockSettings.of(Material.LEAVES) .strength(0.2F) diff --git a/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantBlock.java index 085118e7..b527c7f3 100644 --- a/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantBlock.java @@ -39,7 +39,7 @@ import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; -public class UnderwaterPlantBlock extends BaseBlockNotFull implements IRenderTypeable, Fertilizable, FluidFillable { +public class UnderwaterPlantBlock extends BlockBaseNotFull implements IRenderTypeable, Fertilizable, FluidFillable { private static final VoxelShape SHAPE = Block.createCuboidShape(4, 0, 4, 12, 14, 12); public UnderwaterPlantBlock() { diff --git a/src/main/java/ru/betterend/blocks/basis/UpDownPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/UpDownPlantBlock.java index d7778163..ae9e56a2 100644 --- a/src/main/java/ru/betterend/blocks/basis/UpDownPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/UpDownPlantBlock.java @@ -30,7 +30,7 @@ import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.registry.EndTags; -public class UpDownPlantBlock extends BaseBlockNotFull implements IRenderTypeable { +public class UpDownPlantBlock extends BlockBaseNotFull implements IRenderTypeable { private static final VoxelShape SHAPE = Block.createCuboidShape(4, 0, 4, 12, 16, 12); public UpDownPlantBlock() { diff --git a/src/main/java/ru/betterend/blocks/basis/VineBlock.java b/src/main/java/ru/betterend/blocks/basis/VineBlock.java index e6360b4d..1fe0f431 100644 --- a/src/main/java/ru/betterend/blocks/basis/VineBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/VineBlock.java @@ -38,7 +38,7 @@ import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.util.BlocksHelper; -public class VineBlock extends BaseBlockNotFull implements IRenderTypeable, Fertilizable { +public class VineBlock extends BlockBaseNotFull implements IRenderTypeable, Fertilizable { public static final EnumProperty SHAPE = BlockProperties.TRIPLE_SHAPE; private static final VoxelShape VOXEL_SHAPE = Block.createCuboidShape(2, 0, 2, 14, 16, 14); diff --git a/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java b/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java index f9224a50..a59e1d93 100644 --- a/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java @@ -7,7 +7,7 @@ import net.minecraft.block.MaterialColor; import net.minecraft.item.Item; import net.minecraft.item.Items; import net.minecraft.item.ToolMaterial; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.blocks.basis.EndDoorBlock; import ru.betterend.blocks.basis.EndMetalPaneBlock; import ru.betterend.blocks.basis.EndTrapdoorBlock; @@ -42,9 +42,9 @@ public class MetalMaterial { public MetalMaterial(String name, MaterialColor color, ToolMaterial material) { FabricBlockSettings materialBlock = FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color); - ore = EndBlocks.registerBlock(name + "_ore", new BaseBlock(FabricBlockSettings.copyOf(Blocks.END_STONE))); - block = EndBlocks.registerBlock(name + "_block", new BaseBlock(materialBlock)); - tile = EndBlocks.registerBlock(name + "_tile", new BaseBlock(materialBlock)); + ore = EndBlocks.registerBlock(name + "_ore", new BlockBase(FabricBlockSettings.copyOf(Blocks.END_STONE))); + block = EndBlocks.registerBlock(name + "_block", new BlockBase(materialBlock)); + tile = EndBlocks.registerBlock(name + "_tile", new BlockBase(materialBlock)); bars = EndBlocks.registerBlock(name + "_bars", new EndMetalPaneBlock(block)); plate = EndBlocks.registerBlock(name + "_plate", new EndWoodenPlateBlock(block)); door = EndBlocks.registerBlock(name + "_door", new EndDoorBlock(block)); diff --git a/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java b/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java index f159d795..d4b4cefe 100644 --- a/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java @@ -7,7 +7,7 @@ import net.minecraft.block.MaterialColor; import net.minecraft.tag.BlockTags; import net.minecraft.tag.ItemTags; import ru.betterend.blocks.EndPedestal; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.blocks.basis.EndPillarBlock; import ru.betterend.blocks.basis.EndSlabBlock; import ru.betterend.blocks.basis.EndStairsBlock; @@ -44,9 +44,9 @@ public class StoneMaterial { public StoneMaterial(String name, MaterialColor color) { FabricBlockSettings material = FabricBlockSettings.copyOf(Blocks.END_STONE).materialColor(color); - stone = EndBlocks.registerBlock(name, new BaseBlock(material)); - polished = EndBlocks.registerBlock(name + "_polished", new BaseBlock(material)); - tiles = EndBlocks.registerBlock(name + "_tiles", new BaseBlock(material)); + stone = EndBlocks.registerBlock(name, new BlockBase(material)); + polished = EndBlocks.registerBlock(name + "_polished", new BlockBase(material)); + tiles = EndBlocks.registerBlock(name + "_tiles", new BlockBase(material)); pillar = EndBlocks.registerBlock(name + "_pillar", new EndPillarBlock(material)); stairs = EndBlocks.registerBlock(name + "_stairs", new EndStairsBlock(stone)); slab = EndBlocks.registerBlock(name + "_slab", new EndSlabBlock(stone)); @@ -56,7 +56,7 @@ public class StoneMaterial { pedestal = EndBlocks.registerBlock(name + "_pedestal", new EndPedestal(stone)); lantern = EndBlocks.registerBlock(name + "_lantern", new StoneLanternBlock(stone)); - bricks = EndBlocks.registerBlock(name + "_bricks", new BaseBlock(material)); + bricks = EndBlocks.registerBlock(name + "_bricks", new BlockBase(material)); brick_stairs = EndBlocks.registerBlock(name + "_bricks_stairs", new EndStairsBlock(bricks)); brick_slab = EndBlocks.registerBlock(name + "_bricks_slab", new EndSlabBlock(bricks)); brick_wall = EndBlocks.registerBlock(name + "_bricks_wall", new EndWallBlock(bricks)); diff --git a/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java b/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java index a7533747..b934845d 100644 --- a/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java @@ -11,7 +11,7 @@ import net.minecraft.tag.BlockTags; import net.minecraft.tag.ItemTags; import net.minecraft.tag.Tag; import ru.betterend.blocks.basis.BarkBlock; -import ru.betterend.blocks.basis.BaseBlock; +import ru.betterend.blocks.basis.BlockBase; import ru.betterend.blocks.basis.EndBarrelBlock; import ru.betterend.blocks.basis.EndBlockStripableLogLog; import ru.betterend.blocks.basis.EndBookshelfBlock; @@ -74,7 +74,7 @@ public class WoodenMaterial { log = EndBlocks.registerBlock(name + "_log", new EndBlockStripableLogLog(woodColor, log_stripped)); bark = EndBlocks.registerBlock(name + "_bark", new StrippableBarkBlock(woodColor, bark_stripped)); - planks = EndBlocks.registerBlock(name + "_planks", new BaseBlock(materialPlanks)); + planks = EndBlocks.registerBlock(name + "_planks", new BlockBase(materialPlanks)); stairs = EndBlocks.registerBlock(name + "_stairs", new EndStairsBlock(planks)); slab = EndBlocks.registerBlock(name + "_slab", new EndSlabBlock(planks)); fence = EndBlocks.registerBlock(name + "_fence", new EndFenceBlock(planks)); diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 6d337615..abad7f6c 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -78,6 +78,7 @@ import ru.betterend.blocks.TenaneaFlowersBlock; import ru.betterend.blocks.TenaneaSaplingBlock; import ru.betterend.blocks.TerminiteBlock; import ru.betterend.blocks.TerrainPlantBlock; +import ru.betterend.blocks.ThallasiumChandelierBlock; import ru.betterend.blocks.TwistedUmbrellaMossBlock; import ru.betterend.blocks.TwistedUmbrellaMossTallBlock; import ru.betterend.blocks.UmbrellaMossBlock; @@ -307,6 +308,8 @@ public class EndBlocks { public static final Block BULB_LANTERN = registerBlock("bulb_lantern", new BulbVineLanternBlock()); public static final ColoredMaterial BULB_LANTERN_COLORED = new ColoredMaterial(BulbVineLanternColoredBlock::new, BULB_LANTERN, false); + public static final Block THALLASIUM_CHANDELIER = registerBlock("thallasium_chandelier", new ThallasiumChandelierBlock()); + // Blocks With Entity // public static final Block END_STONE_SMELTER = registerBlock("end_stone_smelter", new EndStoneSmelter()); public static final Block ETERNAL_PEDESTAL = registerBlock("eternal_pedestal", new EternalPedestal()); diff --git a/src/main/resources/assets/betterend/blockstates/thallasium_chandelier.json b/src/main/resources/assets/betterend/blockstates/thallasium_chandelier.json new file mode 100644 index 00000000..d5395443 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/thallasium_chandelier.json @@ -0,0 +1,10 @@ +{ + "variants": { + "facing=up": { "model": "betterend:block/thallasium_chandelier" }, + "facing=down": { "model": "betterend:block/blue_vine_fur", "x": 180 }, + "facing=north": { "model": "betterend:block/blue_vine_fur", "x": 90 }, + "facing=south": { "model": "betterend:block/blue_vine_fur", "x": 90, "y": 180 }, + "facing=east": { "model": "betterend:block/blue_vine_fur", "x": 90, "y": 90 }, + "facing=west": { "model": "betterend:block/blue_vine_fur", "x": 90, "y": 270 } + } +} diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 71f863e0..79e32b8a 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -592,5 +592,6 @@ "block.betterend.thallasium_trapdoor": "Thallasium Trapdoor", "block.betterend.lumecorn_seed": "Lumecorn Seed", - "item.betterend.lumecorn_rod": "Lumecorn Rod" + "item.betterend.lumecorn_rod": "Lumecorn Rod", + "block.betterend.thallasium_chandelier": "Thallasium Chandelier" } diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index 1d247de1..76f0b583 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -594,5 +594,6 @@ "block.betterend.thallasium_trapdoor": "Талласиевый люк", "block.betterend.lumecorn_seed": "Семя люмекорна", - "item.betterend.lumecorn_rod": "Стержень люмекорна" + "item.betterend.lumecorn_rod": "Стержень люмекорна", + "block.betterend.thallasium_chandelier": "Талласиевый канделябр" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/materialmaps/block/thallasium_chandelier.json b/src/main/resources/assets/betterend/materialmaps/block/thallasium_chandelier.json new file mode 100644 index 00000000..fde436df --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/block/thallasium_chandelier.json @@ -0,0 +1,3 @@ +{ + "defaultMaterial": "betterend:glow_65" +} diff --git a/src/main/resources/assets/betterend/materials/glow_60.json b/src/main/resources/assets/betterend/materials/glow_60.json new file mode 100644 index 00000000..4df0ffa1 --- /dev/null +++ b/src/main/resources/assets/betterend/materials/glow_60.json @@ -0,0 +1,10 @@ +{ + "layers": [ + { + "vertexSource": "canvas:shaders/material/default.vert", + "fragmentSource": "betterend:shaders/material/glow_65.frag", + "disableAo": true, + "disableDiffuse": true + } + ] +} diff --git a/src/main/resources/assets/betterend/models/block/thallasium_chandelier.json b/src/main/resources/assets/betterend/models/block/thallasium_chandelier.json new file mode 100644 index 00000000..cf862ca5 --- /dev/null +++ b/src/main/resources/assets/betterend/models/block/thallasium_chandelier.json @@ -0,0 +1,132 @@ +{ + "__comment": "Designed by Paulevs with Cubik Studio - https://cubik.studio", + "textures": { + "particle": "betterend:block/thallasium_chandelier", + "texture": "betterend:block/thallasium_chandelier" + }, + "elements": [ + { + "__comment": "Box1", + "from": [ 6, 0, 6 ], + "to": [ 10, 1, 10 ], + "faces": { + "down": { "uv": [ 0, 0, 4, 4 ], "texture": "#texture" }, + "up": { "uv": [ 0, 0, 4, 4 ], "texture": "#texture" }, + "north": { "uv": [ 0, 4, 4, 5 ], "texture": "#texture" }, + "south": { "uv": [ 0, 4, 4, 5 ], "texture": "#texture" }, + "west": { "uv": [ 0, 4, 4, 5 ], "texture": "#texture" }, + "east": { "uv": [ 0, 4, 4, 5 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX3", + "from": [ 2, 1, 2 ], + "to": [ 2.001, 10, 19 ], + "rotation": { "origin": [ 2, 1, 2 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 7, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX3", + "from": [ 14, 1, 2 ], + "to": [ 14.001, 10, 19 ], + "rotation": { "origin": [ 14, 1, 2 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 7, 16, 16 ], "texture": "#texture" }, + "east": { "uv": [ 0, 7, 16, 16 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 2, 10, 2 ], + "to": [ 2.001, 16, 7.5 ], + "rotation": { "origin": [ 2, 10, 2 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" }, + "east": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 6, 10, 2 ], + "to": [ 6.001, 16, 7.5 ], + "rotation": { "origin": [ 6, 10, 2 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" }, + "east": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 10, 10, 2 ], + "to": [ 10.001, 16, 7.5 ], + "rotation": { "origin": [ 10, 10, 2 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" }, + "east": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 14, 10, 2 ], + "to": [ 14.001, 16, 7.5 ], + "rotation": { "origin": [ 14, 10, 2 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" }, + "east": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 2, 10, 10 ], + "to": [ 2.001, 16, 15.5 ], + "rotation": { "origin": [ 2, 10, 10 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" }, + "east": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 6, 10, 10 ], + "to": [ 6.001, 16, 15.5 ], + "rotation": { "origin": [ 6, 10, 10 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" }, + "east": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 10, 10, 10 ], + "to": [ 10.001, 16, 15.5 ], + "rotation": { "origin": [ 10, 10, 10 ], "axis": "y", "angle": 45 }, + "shade": false, + "faces": { + "west": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" }, + "east": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" } + } + }, + { + "__comment": "PlaneX5", + "from": [ 14, 10, 10 ], + "to": [ 14.001, 16, 15.5 ], + "rotation": { "origin": [ 14, 10, 10 ], "axis": "y", "angle": -45 }, + "shade": false, + "faces": { + "west": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" }, + "east": { "uv": [ 11, 0, 16, 6 ], "texture": "#texture" } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/models/item/thallasium_chandelier.json b/src/main/resources/assets/betterend/models/item/thallasium_chandelier.json new file mode 100644 index 00000000..7668a892 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/thallasium_chandelier.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "betterend:item/thallasium_chandelier" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/shaders/material/glow_65.frag b/src/main/resources/assets/betterend/shaders/material/glow_65.frag new file mode 100644 index 00000000..6e1480fd --- /dev/null +++ b/src/main/resources/assets/betterend/shaders/material/glow_65.frag @@ -0,0 +1,6 @@ +#include frex:shaders/api/fragment.glsl +#include frex:shaders/lib/math.glsl + +void frx_startFragment(inout frx_FragmentData fragData) { + fragData.emissivity = frx_luminance(fragData.spriteColor.rgb) > 0.65 ? 1 : 0; +} diff --git a/src/main/resources/assets/betterend/textures/block/thallasium_chandelier.png b/src/main/resources/assets/betterend/textures/block/thallasium_chandelier.png new file mode 100644 index 0000000000000000000000000000000000000000..f6027db7970436a4048615120a83141f00b3251c GIT binary patch literal 543 zcmV+)0^t3LP)Px$*-1n}R5*>5kv(iuQ5c4wLqu-V^4Dup7+^5yq|um=Xw$`sE;=!rxZ%*SsqLz9 zZ#tMb-E=ga(19j(mCpDVq7eeZh13gN%5NDy7okvr#AiA==gs@R-}zJ`m6dYELUTE3 zoYXmb`cSR!?28@_VHHb!eDz527ZCyApnfcXim%?qQLb3@TBq~}LxQ0I0D3rt&%2Bs z4snr#`msb@YXAb^&|FTIJZ`LFiGKeK0IOJ{X?L)SrGE?n{F-}Y#-+wdonR<{cI_(V z?>_;iYR^e0;#%X!peBxPvq{tLpzEHQl_zQRtZ}+ubJOTq%uJfcn_uq%#J{A|=ve^j zzYO4f6C)g>!?UBWl1OC*U}M{m=+@p?8Qt2Gjcr2!p1k`c&p&({zl|FtQd#+3@6fhe zw5z59%|0Bg1ZY zX4u>t>!g#hDec8=%p`7PWPN9UrgGs3BL@9G!&7@<$XtU&Dl0A1 hPx$C`m*?R5*>zlCe(0P#A^35)}v3Fd-9~@Dln0@&J7RMiK{i1c%$9Eor?3)WqMZO`&PkxOk?Ud(MB(`ExJ)8;A%Z!mVeEi2Rr@Bt@1#OizBp z7d9{I#R`@`%rx2LV*|?{O1)U2yt@aGO3LD6gZa{nNajl~m7K+IB{aspGZKJa#|5C( zAIo&2xVtzrdL0+eN3k|_hz4ALfeu2nqbS#Ec(WG@@=58i%F%HZ*I!^YPvW^`1Ev#& zb`%fSO#{H}+OkkH9&fG;fJS>D+EHt(tu;u(?AoG(5P;Ib{#t4hsb`F!gOKgw4&L(< zk