Chandeliers

This commit is contained in:
paulevsGitch 2021-01-25 07:31:55 +03:00
parent 1985750261
commit 5da6976158
34 changed files with 515 additions and 24 deletions

View file

@ -1,5 +1,6 @@
package ru.betterend.blocks;
import java.io.Reader;
import java.util.EnumMap;
import com.google.common.collect.Maps;
@ -8,20 +9,24 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.ShapeContext;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.registry.Registry;
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;
import ru.betterend.patterns.BlockPatterned;
import ru.betterend.patterns.Patterns;
public class ChandelierBlock extends AttachedBlock implements IRenderTypeable {
public class ChandelierBlock extends AttachedBlock implements IRenderTypeable, BlockPatterned {
private static final EnumMap<Direction, VoxelShape> BOUNDING_SHAPES = Maps.newEnumMap(Direction.class);
public ChandelierBlock(FabricBlockSettings settings) {
super(settings.noCollision().nonOpaque().requiresTool().luminance(15));
public ChandelierBlock(Block source) {
super(FabricBlockSettings.copyOf(source).noCollision().nonOpaque().requiresTool().luminance(15));
}
@Override
@ -34,6 +39,34 @@ public class ChandelierBlock extends AttachedBlock implements IRenderTypeable {
return BOUNDING_SHAPES.get(state.get(FACING));
}
@Override
public String getStatesPattern(Reader data) {
Identifier blockId = Registry.BLOCK.getId(this);
return Patterns.createJson(data, blockId.getPath(), blockId.getPath());
}
@Override
public String getModelPattern(String block) {
Identifier blockId = Registry.BLOCK.getId(this);
if (block.contains("item")) {
return Patterns.createJson(Patterns.ITEM_GENERATED, "item/" + blockId.getPath());
}
else if (block.contains("ceil")) {
return Patterns.createJson(Patterns.BLOCK_CHANDELIER_CEIL, blockId.getPath());
}
else if (block.contains("wall")) {
return Patterns.createJson(Patterns.BLOCK_CHANDELIER_WALL, blockId.getPath());
}
else {
return Patterns.createJson(Patterns.BLOCK_CHANDELIER_FLOOR, blockId.getPath());
}
}
@Override
public Identifier statePatternId() {
return Patterns.STATE_CHANDELIER;
}
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));