Model particles, unbreakable rifts, no instamine doors
This commit is contained in:
parent
49fc7dc231
commit
7e7fe9ba50
19 changed files with 93 additions and 63 deletions
|
@ -23,9 +23,10 @@ import net.minecraft.world.World;
|
|||
|
||||
public class DimensionalPortalBlock extends Block implements RiftProvider<EntranceRiftBlockEntity> {
|
||||
public static DirectionProperty FACING = HorizontalFacingBlock.FACING;
|
||||
|
||||
public DimensionalPortalBlock(Settings settings) {
|
||||
super(settings);
|
||||
setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH));
|
||||
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -52,18 +53,18 @@ public class DimensionalPortalBlock extends Block implements RiftProvider<Entran
|
|||
|
||||
this.getRift(world, pos, state).teleport(entity);
|
||||
|
||||
EntranceRiftBlockEntity rift = getRift(world, pos, state);
|
||||
EntranceRiftBlockEntity rift = this.getRift(world, pos, state);
|
||||
|
||||
world.setBlockState(pos, ModBlocks.DETACHED_RIFT.getDefaultState());
|
||||
((DetachedRiftBlockEntity) world.getBlockEntity(pos)).setData(rift.getData());
|
||||
}
|
||||
|
||||
public BlockState rotate(BlockState state, BlockRotation rotation) {
|
||||
return (BlockState)state.with(FACING, rotation.rotate((Direction)state.get(FACING)));
|
||||
return state.with(FACING, rotation.rotate(state.get(FACING)));
|
||||
}
|
||||
|
||||
public BlockState mirror(BlockState state, BlockMirror mirror) {
|
||||
return state.rotate(mirror.getRotation((Direction)state.get(FACING)));
|
||||
return state.rotate(mirror.getRotation(state.get(FACING)));
|
||||
}
|
||||
|
||||
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||
|
|
|
@ -16,22 +16,23 @@ import net.fabricmc.api.EnvType;
|
|||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
||||
|
||||
public final class ModBlocks {
|
||||
private static final Map<String, Block> BLOCKS = Maps.newLinkedHashMap();
|
||||
public static final Map<DyeColor, Block> FABRIC_BLOCKS = new HashMap<>();
|
||||
public static final Map<DyeColor, Block> ANCIENT_FABRIC_BLOCKS = new HashMap<>();
|
||||
private static final Map<DyeColor, Block> ANCIENT_FABRIC_BLOCKS = new HashMap<>();
|
||||
|
||||
public static final Block GOLD_DOOR = register("dimdoors:gold_door", new DoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.GOLD).nonOpaque()));
|
||||
public static final Block QUARTZ_DOOR = register("dimdoors:quartz_door", new DoorBlock(FabricBlockSettings.of(Material.STONE, MapColor.OFF_WHITE).nonOpaque()));
|
||||
public static final Block OAK_DIMENSIONAL_DOOR = register("dimdoors:oak_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.WOOD, MapColor.OAK_TAN).nonOpaque().lightLevel(state -> 10)));
|
||||
public static final Block IRON_DIMENSIONAL_DOOR = register("dimdoors:iron_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.IRON_GRAY).nonOpaque().lightLevel(state -> 10)));
|
||||
public static final Block GOLD_DIMENSIONAL_DOOR = register("dimdoors:gold_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.GOLD).nonOpaque().lightLevel(state -> 10)));
|
||||
public static final Block QUARTZ_DIMENSIONAL_DOOR = register("dimdoors:quartz_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.STONE, MapColor.OFF_WHITE).nonOpaque().lightLevel(state -> 10)));
|
||||
public static final Block OAK_DIMENSIONAL_TRAPDOOR = register("dimdoors:wood_dimensional_trapdoor", new DimensionalTrapdoorBlock(FabricBlockSettings.of(Material.WOOD, MapColor.OAK_TAN).nonOpaque()));
|
||||
public static final Block GOLD_DOOR = register("dimdoors:gold_door", new DoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.GOLD).strength(5.0F).breakByHand(false).breakByTool(FabricToolTags.PICKAXES).nonOpaque()));
|
||||
public static final Block QUARTZ_DOOR = register("dimdoors:quartz_door", new DoorBlock(FabricBlockSettings.of(Material.STONE, MapColor.OFF_WHITE).strength(5.0F).breakByHand(false).breakByTool(FabricToolTags.PICKAXES).nonOpaque()));
|
||||
public static final Block OAK_DIMENSIONAL_DOOR = register("dimdoors:oak_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.WOOD, MapColor.OAK_TAN).strength(3.0F).breakByTool(FabricToolTags.AXES).breakByHand(true).nonOpaque().luminance(state -> 10)));
|
||||
public static final Block IRON_DIMENSIONAL_DOOR = register("dimdoors:iron_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.IRON_GRAY).strength(5.0F).breakByHand(false).breakByTool(FabricToolTags.PICKAXES).nonOpaque().luminance(state -> 10)));
|
||||
public static final Block GOLD_DIMENSIONAL_DOOR = register("dimdoors:gold_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.GOLD).strength(5.0F).breakByHand(false).breakByTool(FabricToolTags.PICKAXES).nonOpaque().luminance(state -> 10)));
|
||||
public static final Block QUARTZ_DIMENSIONAL_DOOR = register("dimdoors:quartz_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.STONE, MapColor.OFF_WHITE).strength(5.0F).breakByHand(false).breakByTool(FabricToolTags.PICKAXES).nonOpaque().luminance(state -> 10)));
|
||||
public static final Block OAK_DIMENSIONAL_TRAPDOOR = register("dimdoors:wood_dimensional_trapdoor", new DimensionalTrapdoorBlock(FabricBlockSettings.of(Material.WOOD, MapColor.OAK_TAN).strength(3.0F).breakByTool(FabricToolTags.AXES).breakByHand(true).nonOpaque()));
|
||||
|
||||
public static final Block DIMENSIONAL_PORTAL = register("dimdoors:dimensional_portal", new DimensionalPortalBlock(FabricBlockSettings.of(Material.AIR).collidable(false).nonOpaque().dropsNothing().lightLevel(10)));
|
||||
public static final Block DETACHED_RIFT = register("dimdoors:detached_rift", new DetachedRiftBlock(FabricBlockSettings.of(Material.AIR).noCollision().nonOpaque()));
|
||||
public static final Block DIMENSIONAL_PORTAL = register("dimdoors:dimensional_portal", new DimensionalPortalBlock(FabricBlockSettings.of(Material.AIR).collidable(false).strength(-1.0F, 3600000.0F).nonOpaque().dropsNothing().luminance(10)));
|
||||
public static final Block DETACHED_RIFT = register("dimdoors:detached_rift", new DetachedRiftBlock(FabricBlockSettings.of(Material.AIR).strength(-1.0F, 3600000.0F).noCollision().nonOpaque()));
|
||||
|
||||
public static final Block WHITE_FABRIC = registerFabric("dimdoors:white_fabric", DyeColor.WHITE);
|
||||
public static final Block ORANGE_FABRIC = registerFabric("dimdoors:orange_fabric", DyeColor.ORANGE);
|
||||
|
@ -98,7 +99,13 @@ public final class ModBlocks {
|
|||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public static void initClient() {
|
||||
BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), ModBlocks.OAK_DIMENSIONAL_DOOR, ModBlocks.GOLD_DIMENSIONAL_DOOR, ModBlocks.IRON_DIMENSIONAL_DOOR, ModBlocks.OAK_DIMENSIONAL_TRAPDOOR, ModBlocks.QUARTZ_DIMENSIONAL_DOOR, ModBlocks.QUARTZ_DOOR);
|
||||
BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(),
|
||||
ModBlocks.OAK_DIMENSIONAL_DOOR,
|
||||
ModBlocks.GOLD_DIMENSIONAL_DOOR,
|
||||
ModBlocks.IRON_DIMENSIONAL_DOOR,
|
||||
ModBlocks.OAK_DIMENSIONAL_TRAPDOOR,
|
||||
ModBlocks.QUARTZ_DIMENSIONAL_DOOR,
|
||||
ModBlocks.QUARTZ_DOOR);
|
||||
}
|
||||
|
||||
public static Block ancientFabricFromDye(DyeColor color) {
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"parent": "block/door_bottom",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/gold_door_lower",
|
||||
"top": "dimdoors:block/gold_door_upper"
|
||||
}
|
||||
"parent": "block/door_bottom",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/gold_door_lower",
|
||||
"top": "dimdoors:block/gold_door_upper",
|
||||
"particle": "dimdoors:block/gold_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"parent": "block/door_bottom_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/gold_door_lower",
|
||||
"top": "dimdoors:block/gold_door_upper"
|
||||
}
|
||||
"parent": "block/door_bottom_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/gold_door_lower",
|
||||
"top": "dimdoors:block/gold_door_upper",
|
||||
"particle": "dimdoors:block/gold_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"parent": "block/door_top",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/gold_door_lower",
|
||||
"top": "dimdoors:block/gold_door_upper"
|
||||
}
|
||||
"parent": "block/door_top",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/gold_door_lower",
|
||||
"top": "dimdoors:block/gold_door_upper",
|
||||
"particle": "dimdoors:block/gold_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"parent": "block/door_top_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/gold_door_lower",
|
||||
"top": "dimdoors:block/gold_door_upper"
|
||||
}
|
||||
"parent": "block/door_top_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/gold_door_lower",
|
||||
"top": "dimdoors:block/gold_door_upper",
|
||||
"particle": "dimdoors:block/gold_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"parent": "block/door_bottom",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/iron_dimensional_door_lower",
|
||||
"top": "dimdoors:block/iron_dimensional_door_upper"
|
||||
}
|
||||
"parent": "block/door_bottom",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/iron_dimensional_door_lower",
|
||||
"top": "dimdoors:block/iron_dimensional_door_upper",
|
||||
"particle": "dimdoors:block/iron_dimensional_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"parent": "block/door_bottom_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/iron_dimensional_door_lower",
|
||||
"top": "dimdoors:block/iron_dimensional_door_upper"
|
||||
}
|
||||
"parent": "block/door_bottom_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/iron_dimensional_door_lower",
|
||||
"top": "dimdoors:block/iron_dimensional_door_upper",
|
||||
"particle": "dimdoors:block/iron_dimensional_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"parent": "block/door_top",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/iron_dimensional_door_lower",
|
||||
"top": "dimdoors:block/iron_dimensional_door_upper"
|
||||
}
|
||||
"parent": "block/door_top",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/iron_dimensional_door_lower",
|
||||
"top": "dimdoors:block/iron_dimensional_door_upper",
|
||||
"particle": "dimdoors:block/iron_dimensional_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"parent": "block/door_top_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/iron_dimensional_door_lower",
|
||||
"top": "dimdoors:block/iron_dimensional_door_upper"
|
||||
}
|
||||
"parent": "block/door_top_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/iron_dimensional_door_lower",
|
||||
"top": "dimdoors:block/iron_dimensional_door_upper",
|
||||
"particle": "dimdoors:block/iron_dimensional_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"parent": "block/door_bottom",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/oak_dimensional_door_lower",
|
||||
"top": "dimdoors:block/oak_dimensional_door_upper"
|
||||
"top": "dimdoors:block/oak_dimensional_door_upper",
|
||||
"particle": "dimdoors:block/oak_dimensional_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"parent": "block/door_bottom_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/oak_dimensional_door_lower",
|
||||
"top": "dimdoors:block/oak_dimensional_door_upper"
|
||||
"top": "dimdoors:block/oak_dimensional_door_upper",
|
||||
"particle": "dimdoors:block/oak_dimensional_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"parent": "block/door_top",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/oak_dimensional_door_lower",
|
||||
"top": "dimdoors:block/oak_dimensional_door_upper"
|
||||
"top": "dimdoors:block/oak_dimensional_door_upper",
|
||||
"particle": "dimdoors:block/oak_dimensional_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"parent": "block/door_top_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/oak_dimensional_door_lower",
|
||||
"top": "dimdoors:block/oak_dimensional_door_upper"
|
||||
"top": "dimdoors:block/oak_dimensional_door_upper",
|
||||
"particle": "dimdoors:block/oak_dimensional_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"parent": "block/door_bottom",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/quartz_door_lower",
|
||||
"top": "dimdoors:block/quartz_door_upper"
|
||||
"top": "dimdoors:block/quartz_door_upper",
|
||||
"particle": "dimdoors:block/quartz_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"parent": "block/door_bottom_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/quartz_door_lower",
|
||||
"top": "dimdoors:block/quartz_door_upper"
|
||||
"top": "dimdoors:block/quartz_door_upper",
|
||||
"particle": "dimdoors:block/quartz_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"parent": "block/door_top",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/quartz_door_lower",
|
||||
"top": "dimdoors:block/quartz_door_upper"
|
||||
"top": "dimdoors:block/quartz_door_upper",
|
||||
"particle": "dimdoors:block/quartz_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"parent": "block/door_top_rh",
|
||||
"textures": {
|
||||
"bottom": "dimdoors:block/quartz_door_lower",
|
||||
"top": "dimdoors:block/quartz_door_upper"
|
||||
"top": "dimdoors:block/quartz_door_upper",
|
||||
"particle": "dimdoors:block/quartz_door_lower"
|
||||
}
|
||||
}
|
||||
|
|
6
src/main/resources/data/fabric/tags/items/swords.json
Normal file
6
src/main/resources/data/fabric/tags/items/swords.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"dimdoors:rift_blade"
|
||||
]
|
||||
}
|
Loading…
Reference in a new issue