Smaragdant enhancements
This commit is contained in:
parent
ba7ea67f0c
commit
461333650a
61 changed files with 1096 additions and 21 deletions
|
@ -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.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
import ru.bclib.blocks.BaseRotatedPillarBlock;
|
||||
import ru.betterend.blocks.basis.LitPillarBlock;
|
||||
|
||||
public class SmaragdantCrystalBlock extends BaseRotatedPillarBlock {
|
||||
public class SmaragdantCrystalBlock extends LitPillarBlock {
|
||||
public SmaragdantCrystalBlock() {
|
||||
super(FabricBlockSettings.of(Material.GLASS)
|
||||
.breakByTool(FabricToolTags.PICKAXES)
|
||||
|
@ -14,6 +14,6 @@ public class SmaragdantCrystalBlock extends BaseRotatedPillarBlock {
|
|||
.hardness(1F)
|
||||
.resistance(1F)
|
||||
.noOcclusion()
|
||||
.sound(SoundType.GLASS));
|
||||
.sound(SoundType.AMETHYST));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public class SmaragdantCrystalShardBlock extends BaseAttachedBlock implements IR
|
|||
.materialColor(MaterialColor.COLOR_GREEN)
|
||||
.breakByTool(FabricToolTags.PICKAXES)
|
||||
.luminance(15)
|
||||
.sound(SoundType.GLASS)
|
||||
.sound(SoundType.AMETHYST_CLUSTER)
|
||||
.requiresCorrectToolForDrops()
|
||||
.noCollission());
|
||||
}
|
||||
|
|
24
src/main/java/ru/betterend/blocks/basis/LitBaseBlock.java
Normal file
24
src/main/java/ru/betterend/blocks/basis/LitBaseBlock.java
Normal file
|
@ -0,0 +1,24 @@
|
|||
package ru.betterend.blocks.basis;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.client.renderer.block.model.BlockModel;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import ru.bclib.blocks.BaseBlock;
|
||||
|
||||
public class LitBaseBlock extends BaseBlock {
|
||||
private static final String PATTERN = "{\"parent\":\"betterend:block/cube_noshade\",\"textures\":{\"texture\":\"betterend:block/name\"}}";
|
||||
|
||||
public LitBaseBlock(Properties settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
@Environment(EnvType.CLIENT)
|
||||
public BlockModel getBlockModel(ResourceLocation resourceLocation, BlockState blockState) {
|
||||
return BlockModel.fromString(PATTERN.replace("name", resourceLocation.getPath()));
|
||||
}
|
||||
}
|
23
src/main/java/ru/betterend/blocks/basis/LitPillarBlock.java
Normal file
23
src/main/java/ru/betterend/blocks/basis/LitPillarBlock.java
Normal file
|
@ -0,0 +1,23 @@
|
|||
package ru.betterend.blocks.basis;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import ru.bclib.blocks.BaseRotatedPillarBlock;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class LitPillarBlock extends BaseRotatedPillarBlock {
|
||||
private static final String PATTERN = "{\"parent\":\"betterend:block/pillar_noshade\",\"textures\":{\"end\":\"betterend:block/name_top\",\"side\":\"betterend:block/name_side\"}}";
|
||||
|
||||
public LitPillarBlock(Properties settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Environment(EnvType.CLIENT)
|
||||
protected Optional<String> createBlockPattern(ResourceLocation blockId) {
|
||||
String name = blockId.getPath();
|
||||
return Optional.of(PATTERN.replace("name", name));
|
||||
}
|
||||
}
|
|
@ -42,11 +42,9 @@ import ru.bclib.client.models.ModelsHelper;
|
|||
import ru.betterend.blocks.EndBlockProperties;
|
||||
import ru.betterend.blocks.EndBlockProperties.PedestalState;
|
||||
import ru.betterend.blocks.InfusionPedestal;
|
||||
import ru.betterend.blocks.entities.EndStoneSmelterBlockEntity;
|
||||
import ru.betterend.blocks.entities.InfusionPedestalEntity;
|
||||
import ru.betterend.blocks.entities.PedestalBlockEntity;
|
||||
import ru.betterend.client.models.Patterns;
|
||||
import ru.betterend.registry.EndBlockEntities;
|
||||
import ru.betterend.registry.EndBlocks;
|
||||
import ru.betterend.rituals.InfusionRitual;
|
||||
|
||||
|
@ -55,6 +53,7 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.function.ToIntFunction;
|
||||
|
||||
@SuppressWarnings({"deprecation"})
|
||||
public class PedestalBlock extends BaseBlockNotFull implements EntityBlock {
|
||||
|
@ -95,11 +94,19 @@ public class PedestalBlock extends BaseBlockNotFull implements EntityBlock {
|
|||
protected float height = 1.0F;
|
||||
|
||||
public PedestalBlock(Block parent) {
|
||||
super(FabricBlockSettings.copyOf(parent).luminance(state -> state.getValue(HAS_LIGHT) ? 12 : 0));
|
||||
super(FabricBlockSettings.copyOf(parent).luminance(getLuminance(parent.defaultBlockState())));
|
||||
this.registerDefaultState(stateDefinition.any().setValue(STATE, PedestalState.DEFAULT).setValue(HAS_ITEM, false).setValue(HAS_LIGHT, false));
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
private static ToIntFunction<BlockState> getLuminance(BlockState parent) {
|
||||
final int light = parent.getLightEmission();
|
||||
if (light > 0) {
|
||||
return state -> light;
|
||||
}
|
||||
return state -> state.getValue(HAS_LIGHT) ? 12 : 0;
|
||||
}
|
||||
|
||||
public float getHeight(BlockState state) {
|
||||
if (state.getBlock() instanceof PedestalBlock && state.getValue(STATE) == PedestalState.PEDESTAL_TOP) {
|
||||
return this.height - 0.2F;
|
||||
|
|
|
@ -4,8 +4,6 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
|||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import ru.bclib.blocks.BaseBlock;
|
||||
import ru.bclib.blocks.BaseRotatedPillarBlock;
|
||||
import ru.bclib.blocks.BaseSlabBlock;
|
||||
import ru.bclib.blocks.BaseStairsBlock;
|
||||
import ru.bclib.blocks.BaseWallBlock;
|
||||
|
@ -13,6 +11,8 @@ import ru.bclib.recipes.GridRecipe;
|
|||
import ru.bclib.util.TagHelper;
|
||||
import ru.betterend.BetterEnd;
|
||||
import ru.betterend.blocks.EndPedestal;
|
||||
import ru.betterend.blocks.basis.LitBaseBlock;
|
||||
import ru.betterend.blocks.basis.LitPillarBlock;
|
||||
import ru.betterend.config.Configs;
|
||||
import ru.betterend.recipe.CraftingRecipes;
|
||||
import ru.betterend.registry.EndBlocks;
|
||||
|
@ -32,14 +32,14 @@ public class CrystalSubblocksMaterial {
|
|||
|
||||
public CrystalSubblocksMaterial(String name, Block source) {
|
||||
FabricBlockSettings material = FabricBlockSettings.copyOf(source);
|
||||
polished = EndBlocks.registerBlock(name + "_polished", new BaseBlock(material));
|
||||
tiles = EndBlocks.registerBlock(name + "_tiles", new BaseBlock(material));
|
||||
pillar = EndBlocks.registerBlock(name + "_pillar", new BaseRotatedPillarBlock(material));
|
||||
polished = EndBlocks.registerBlock(name + "_polished", new LitBaseBlock(material));
|
||||
tiles = EndBlocks.registerBlock(name + "_tiles", new LitBaseBlock(material));
|
||||
pillar = EndBlocks.registerBlock(name + "_pillar", new LitPillarBlock(material));
|
||||
stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(source));
|
||||
slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(source));
|
||||
wall = EndBlocks.registerBlock(name + "_wall", new BaseWallBlock(source));
|
||||
pedestal = EndBlocks.registerBlock(name + "_pedestal", new EndPedestal(source));
|
||||
bricks = EndBlocks.registerBlock(name + "_bricks", new BaseBlock(material));
|
||||
bricks = EndBlocks.registerBlock(name + "_bricks", new LitBaseBlock(material));
|
||||
brick_stairs = EndBlocks.registerBlock(name + "_bricks_stairs", new BaseStairsBlock(bricks));
|
||||
brick_slab = EndBlocks.registerBlock(name + "_bricks_slab", new BaseSlabBlock(bricks));
|
||||
brick_wall = EndBlocks.registerBlock(name + "_bricks_wall", new BaseWallBlock(bricks));
|
||||
|
|
|
@ -394,9 +394,9 @@ public class EndBlocks extends BlocksRegistry {
|
|||
public static final Block ENDER_BLOCK = registerBlock("ender_block", new EnderBlock());
|
||||
public static final Block AURORA_CRYSTAL = registerBlock("aurora_crystal", new AuroraCrystalBlock());
|
||||
public static final Block AMBER_BLOCK = registerBlock("amber_block", new AmberBlock());
|
||||
public static final Block SMARAGDANT_CRYSTAL_SHARD = registerBlock("smaragdant_crystal_shard", new SmaragdantCrystalShardBlock());
|
||||
public static final Block SMARAGDANT_CRYSTAL = registerBlock("smaragdant_crystal", new SmaragdantCrystalBlock());
|
||||
public static final CrystalSubblocksMaterial SMARAGDANT_SUBBLOCKS = new CrystalSubblocksMaterial("smaragdant_crystal", SMARAGDANT_CRYSTAL);
|
||||
public static final Block SMARAGDANT_CRYSTAL_SHARD = registerBlock("smaragdant_crystal_shard", new SmaragdantCrystalShardBlock());
|
||||
|
||||
public static final Block RESPAWN_OBELISK = registerBlock("respawn_obelisk", new RespawnObeliskBlock());
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue