1.15.2 Backport

This commit is contained in:
Motschen
2020-07-06 19:37:09 +02:00
parent 80dd9ebd59
commit 6aa127ecfe
53 changed files with 71 additions and 232 deletions

View File

@@ -27,7 +27,7 @@ dependencies {
// Fabric API. This is technically optional, but you probably want it anyway. // Fabric API. This is technically optional, but you probably want it anyway.
modCompile "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" modCompile "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modCompile("vazkii.patchouli:Patchouli_1.16-fabric:${project.patchouli_version}") modCompile("vazkii.patchouli:Patchouli_1.15-fabric:${project.patchouli_version}")
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs. // PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
// You may need to force-disable transitiveness on them. // You may need to force-disable transitiveness on them.
} }

View File

@@ -3,16 +3,16 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/use # check these on https://fabricmc.net/use
minecraft_version=1.16.1 minecraft_version=1.15.2
yarn_mappings=1.16.1+build.7 yarn_mappings=1.15.2+build.17
loader_version=0.8.8+build.202 loader_version=0.8.9+build.203
# Mod Properties # Mod Properties
mod_version = 1.0.0 mod_version = 1.0.0-1.15
maven_group = eu.midnightdust.motschen maven_group = eu.midnightdust.motschen
archives_base_name = decorative archives_base_name = decorative
# Dependencies # Dependencies
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
fabric_version=0.14.0+build.371-1.16 fabric_version=0.14.0+build.317-1.15
patchouli_version=1.16-37.21-FABRIC patchouli_version=1.15.2-1.2-35-FABRIC

View File

@@ -2,6 +2,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.state.StateManager; import net.minecraft.state.StateManager;
@@ -14,7 +15,7 @@ public class BirdBath extends CauldronBlock {
private static final VoxelShape SHAPE; private static final VoxelShape SHAPE;
public BirdBath() { public BirdBath() {
super(FabricBlockSettings.copy(Blocks.CAULDRON).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.CAULDRON).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(LEVEL, 0)); this.setDefaultState(this.stateManager.getDefaultState().with(LEVEL, 0));
} }
@@ -30,7 +31,7 @@ public class BirdBath extends CauldronBlock {
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
return SHAPE; return SHAPE;
} }
static { static {

View File

@@ -2,6 +2,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
@@ -21,7 +22,7 @@ public class CeilingFan extends RedstoneLampBlock {
private static final VoxelShape SHAPE; private static final VoxelShape SHAPE;
public CeilingFan() { public CeilingFan() {
super(FabricBlockSettings.copy(Blocks.BLACK_CONCRETE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.BLACK_CONCRETE).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(LIT, true)); this.setDefaultState(this.stateManager.getDefaultState().with(LIT, true));
} }
@@ -41,7 +42,7 @@ public class CeilingFan extends RedstoneLampBlock {
builder.add(LIT); builder.add(LIT);
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
return SHAPE; return SHAPE;
} }
static { static {

View File

@@ -2,6 +2,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
@@ -29,7 +30,7 @@ public class ChristmasLights extends HorizontalFacingBlock {
public static final BooleanProperty LIT = RedstoneTorchBlock.LIT; public static final BooleanProperty LIT = RedstoneTorchBlock.LIT;
public ChristmasLights() { public ChristmasLights() {
super(FabricBlockSettings.copy(Blocks.REDSTONE_LAMP).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.REDSTONE_LAMP).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(LIT, Boolean.FALSE)); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(LIT, Boolean.FALSE));
} }
@@ -52,7 +53,7 @@ public class ChristmasLights extends HorizontalFacingBlock {
builder.add(LIT); builder.add(LIT);
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
switch (state.get(FACING)) { switch (state.get(FACING)) {
case NORTH: return NORTH_SHAPE; case NORTH: return NORTH_SHAPE;
case EAST: return EAST_SHAPE; case EAST: return EAST_SHAPE;

View File

@@ -2,6 +2,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShape;
@@ -12,11 +13,11 @@ public class ChristmasTree extends Block{
private static final VoxelShape SHAPE; private static final VoxelShape SHAPE;
public ChristmasTree() { public ChristmasTree() {
super(FabricBlockSettings.copy(Blocks.BLACK_CONCRETE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.BLACK_CONCRETE).nonOpaque());
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
return SHAPE; return SHAPE;
} }
static { static {

View File

@@ -1,14 +1,13 @@
package eu.midnightdust.motschen.decorative.block; package eu.midnightdust.motschen.decorative.block;
import blue.endless.jankson.annotation.Nullable;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.block.enums.DoubleBlockHalf; import net.minecraft.block.enums.DoubleBlockHalf;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.LivingEntity; import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundCategory;
import net.minecraft.sound.SoundEvents; import net.minecraft.sound.SoundEvents;
import net.minecraft.state.StateManager; import net.minecraft.state.StateManager;
@@ -23,7 +22,6 @@ import net.minecraft.util.math.Direction;
import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShape;
import net.minecraft.world.BlockView; import net.minecraft.world.BlockView;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.WorldAccess;
import net.minecraft.world.WorldView; import net.minecraft.world.WorldView;
public class DoubleLamp extends RedstoneLampBlock { public class DoubleLamp extends RedstoneLampBlock {
@@ -34,7 +32,7 @@ public class DoubleLamp extends RedstoneLampBlock {
public static final EnumProperty<DoubleBlockHalf> HALF = Properties.DOUBLE_BLOCK_HALF; public static final EnumProperty<DoubleBlockHalf> HALF = Properties.DOUBLE_BLOCK_HALF;
public DoubleLamp() { public DoubleLamp() {
super(FabricBlockSettings.copy(Blocks.REDSTONE_LAMP).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.REDSTONE_LAMP).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(LIT, false).with(HALF, DoubleBlockHalf.LOWER)); this.setDefaultState(this.stateManager.getDefaultState().with(LIT, false).with(HALF, DoubleBlockHalf.LOWER));
} }
@@ -45,7 +43,6 @@ public class DoubleLamp extends RedstoneLampBlock {
} }
@Override @Override
@Nullable
public BlockState getPlacementState(ItemPlacementContext arg) { public BlockState getPlacementState(ItemPlacementContext arg) {
return this.getDefaultState().with(LIT, arg.getWorld().isReceivingRedstonePower(arg.getBlockPos())); return this.getDefaultState().with(LIT, arg.getWorld().isReceivingRedstonePower(arg.getBlockPos()));
} }
@@ -54,36 +51,30 @@ public class DoubleLamp extends RedstoneLampBlock {
public void onPlaced(World arg, BlockPos arg2, BlockState arg3, LivingEntity arg4, ItemStack arg5) { public void onPlaced(World arg, BlockPos arg2, BlockState arg3, LivingEntity arg4, ItemStack arg5) {
arg.setBlockState(arg2.up(), arg3.with(HALF, DoubleBlockHalf.UPPER), 3); arg.setBlockState(arg2.up(), arg3.with(HALF, DoubleBlockHalf.UPPER), 3);
} }
@Override public void neighborUpdate(BlockState state, World world, BlockPos pos, Block block, BlockPos neighborPos, boolean moved) {
public BlockState getStateForNeighborUpdate(BlockState arg, Direction arg2, BlockState arg3, WorldAccess arg4, BlockPos arg5, BlockPos arg6) { boolean bl = world.isReceivingRedstonePower(pos) || world.isReceivingRedstonePower(pos.offset(state.get(HALF) == DoubleBlockHalf.LOWER ? Direction.UP : Direction.DOWN));
DoubleBlockHalf lv = arg.get(HALF); if (block != this && bl != state.get(LIT)) {
if (arg2.getAxis() == Direction.Axis.Y && lv == DoubleBlockHalf.LOWER == (arg2 == Direction.UP)) { world.setBlockState(pos, state.with(LIT, bl), 2);
if (arg3.isOf(this) && arg3.get(HALF) != lv) {
return (arg.with(LIT, arg3.get(LIT)));
}
return Blocks.AIR.getDefaultState();
} }
if (lv == DoubleBlockHalf.LOWER && arg2 == Direction.DOWN && !arg.canPlaceAt(arg4, arg5)) {
return Blocks.AIR.getDefaultState();
}
return super.getStateForNeighborUpdate(arg, arg2, arg3, arg4, arg5, arg6);
} }
@Override public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
public boolean canPlaceAt(BlockState arg, WorldView arg2, BlockPos arg3) { BlockPos blockPos = pos.down();
BlockPos lv = arg3.down(); BlockState blockState = world.getBlockState(blockPos);
BlockState lv2 = arg2.getBlockState(lv); if (state.get(HALF) == DoubleBlockHalf.LOWER) {
if (arg.get(HALF) == DoubleBlockHalf.LOWER) { return blockState.isSideSolidFullSquare(world, blockPos, Direction.UP);
return lv2.isSideSolidFullSquare(arg2, lv, Direction.UP); } else {
return blockState.getBlock() == this;
} }
return lv2.isOf(this);
} }
@Override @Override
protected void appendProperties(StateManager.Builder<Block, BlockState> arg) { protected void appendProperties(StateManager.Builder<Block, BlockState> arg) {
arg.add(LIT); arg.add(LIT);
arg.add(HALF); arg.add(HALF);
} }
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, EntityContext context) {
boolean bl = state.get(HALF) == DoubleBlockHalf.UPPER; boolean bl = state.get(HALF) == DoubleBlockHalf.UPPER;
return bl ? SHAPE_TOP : SHAPE_BOTTOM; return bl ? SHAPE_TOP : SHAPE_BOTTOM;
} }

View File

@@ -2,6 +2,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -28,7 +29,7 @@ public class FireHydrant extends HorizontalFacingBlock {
private static final VoxelShape WEST_SHAPE; private static final VoxelShape WEST_SHAPE;
public FireHydrant() { public FireHydrant() {
super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH)); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH));
} }
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
@@ -68,7 +69,7 @@ public class FireHydrant extends HorizontalFacingBlock {
builder.add(FACING); builder.add(FACING);
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
switch (state.get(FACING)) { switch (state.get(FACING)) {
case NORTH: return NORTH_SHAPE; case NORTH: return NORTH_SHAPE;
case EAST: return EAST_SHAPE; case EAST: return EAST_SHAPE;

View File

@@ -2,6 +2,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -28,7 +29,7 @@ public class Guardrail extends HorizontalFacingBlock {
private static final VoxelShape WEST_SHAPE; private static final VoxelShape WEST_SHAPE;
public Guardrail() { public Guardrail() {
super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH)); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH));
} }
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
@@ -68,7 +69,7 @@ public class Guardrail extends HorizontalFacingBlock {
builder.add(FACING); builder.add(FACING);
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
switch (state.get(FACING)) { switch (state.get(FACING)) {
case NORTH: return NORTH_SHAPE; case NORTH: return NORTH_SHAPE;
case EAST: return EAST_SHAPE; case EAST: return EAST_SHAPE;

View File

@@ -2,6 +2,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundCategory;
@@ -18,7 +19,7 @@ public class Lamp extends RedstoneLampBlock {
private static final VoxelShape SHAPE; private static final VoxelShape SHAPE;
public Lamp() { public Lamp() {
super(FabricBlockSettings.copy(Blocks.REDSTONE_LAMP).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.REDSTONE_LAMP).nonOpaque());
} }
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
world.setBlockState(pos, state.with(LIT, Boolean.valueOf(!state.get(LIT)))); world.setBlockState(pos, state.with(LIT, Boolean.valueOf(!state.get(LIT))));
@@ -26,7 +27,7 @@ public class Lamp extends RedstoneLampBlock {
return ActionResult.SUCCESS; return ActionResult.SUCCESS;
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
return SHAPE; return SHAPE;
} }
static { static {

View File

@@ -12,7 +12,7 @@ import net.minecraft.world.WorldView;
public class LogWithAxe extends HorizontalFacingBlock { public class LogWithAxe extends HorizontalFacingBlock {
public LogWithAxe() { public LogWithAxe() {
super(FabricBlockSettings.copy(Blocks.OAK_PLANKS).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.OAK_PLANKS).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH)); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH));
} }

View File

@@ -4,6 +4,7 @@ import eu.midnightdust.motschen.decorative.DecorativeMain;
import eu.midnightdust.motschen.decorative.Program; import eu.midnightdust.motschen.decorative.Program;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
@@ -31,7 +32,7 @@ public class OldTelevision extends HorizontalFacingBlock {
private static final EnumProperty<Program> PROGRAM = DecorativeMain.PROGRAM; private static final EnumProperty<Program> PROGRAM = DecorativeMain.PROGRAM;
public OldTelevision() { public OldTelevision() {
super(FabricBlockSettings.copy(Blocks.BLACK_CONCRETE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.BLACK_CONCRETE).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(PROGRAM, Program.OFF)); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(PROGRAM, Program.OFF));
} }
@@ -69,7 +70,7 @@ public class OldTelevision extends HorizontalFacingBlock {
builder.add(PROGRAM); builder.add(PROGRAM);
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
switch (state.get(FACING)) { switch (state.get(FACING)) {
case NORTH: return NORTH_SHAPE; case NORTH: return NORTH_SHAPE;
case EAST: return EAST_SHAPE; case EAST: return EAST_SHAPE;

View File

@@ -15,7 +15,7 @@ import net.minecraft.world.WorldView;
public class RotatableBlock extends HorizontalFacingBlock { public class RotatableBlock extends HorizontalFacingBlock {
public RotatableBlock() { public RotatableBlock() {
super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH)); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH));
} }
@@ -30,4 +30,8 @@ public class RotatableBlock extends HorizontalFacingBlock {
builder.add(FACING); builder.add(FACING);
} }
public boolean canPlaceAt(BlockState state, WorldView worldView, BlockPos pos) {
return !worldView.isAir(pos.down());
}
} }

View File

@@ -2,6 +2,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -28,7 +29,7 @@ public class Sign extends HorizontalFacingBlock {
private static final VoxelShape WEST_SHAPE; private static final VoxelShape WEST_SHAPE;
public Sign() { public Sign() {
super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH)); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH));
} }
@@ -43,7 +44,7 @@ public class Sign extends HorizontalFacingBlock {
builder.add(FACING); builder.add(FACING);
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
switch (state.get(FACING)) { switch (state.get(FACING)) {
case NORTH: return NORTH_SHAPE; case NORTH: return NORTH_SHAPE;
case EAST: return EAST_SHAPE; case EAST: return EAST_SHAPE;

View File

@@ -4,8 +4,7 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.block.ShapeContext; import net.minecraft.entity.EntityContext;
import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShape;
import net.minecraft.world.BlockView; import net.minecraft.world.BlockView;
@@ -15,11 +14,11 @@ public class SignPost extends Block {
private static final VoxelShape SHAPE; private static final VoxelShape SHAPE;
public SignPost() { public SignPost() {
super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque());
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
return SHAPE; return SHAPE;
} }
static { static {

View File

@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.block.enums.DoorHinge; import net.minecraft.block.enums.DoorHinge;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
@@ -31,7 +32,7 @@ public class SlidingDoor extends DoorBlock {
private static final VoxelShape WEST_SHAPE_OPEN; private static final VoxelShape WEST_SHAPE_OPEN;
public SlidingDoor() { public SlidingDoor() {
super(FabricBlockSettings.copy(Blocks.BLACK_CONCRETE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.BLACK_CONCRETE).nonOpaque());
} }
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
@@ -41,7 +42,7 @@ public class SlidingDoor extends DoorBlock {
return ActionResult.SUCCESS; return ActionResult.SUCCESS;
} }
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, EntityContext context) {
state.get(FACING); state.get(FACING);
boolean bl = !state.get(OPEN); boolean bl = !state.get(OPEN);
boolean bl2 = state.get(HINGE) == DoorHinge.RIGHT; boolean bl2 = state.get(HINGE) == DoorHinge.RIGHT;

View File

@@ -4,6 +4,7 @@ import eu.midnightdust.motschen.decorative.DecorativeMain;
import eu.midnightdust.motschen.decorative.Program; import eu.midnightdust.motschen.decorative.Program;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
@@ -31,7 +32,7 @@ public class Television extends HorizontalFacingBlock {
private static final EnumProperty<Program> PROGRAM = DecorativeMain.PROGRAM; private static final EnumProperty<Program> PROGRAM = DecorativeMain.PROGRAM;
public Television() { public Television() {
super(FabricBlockSettings.copy(Blocks.BLACK_CONCRETE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.BLACK_CONCRETE).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(PROGRAM, Program.OFF)); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(PROGRAM, Program.OFF));
} }
@@ -69,7 +70,7 @@ public class Television extends HorizontalFacingBlock {
builder.add(PROGRAM); builder.add(PROGRAM);
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
switch (state.get(FACING)) { switch (state.get(FACING)) {
case NORTH: return NORTH_SHAPE; case NORTH: return NORTH_SHAPE;
case EAST: return EAST_SHAPE; case EAST: return EAST_SHAPE;

View File

@@ -2,6 +2,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -25,11 +26,11 @@ public class TrafficCone extends Block {
private static final VoxelShape SHAPE; private static final VoxelShape SHAPE;
public TrafficCone() { public TrafficCone() {
super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque());
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
return SHAPE; return SHAPE;
} }
static { static {

View File

@@ -3,6 +3,7 @@ package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.block.entity.BannerBlockEntity; import net.minecraft.block.entity.BannerBlockEntity;
import net.minecraft.entity.EntityContext;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.fluid.WaterFluid; import net.minecraft.fluid.WaterFluid;
import net.minecraft.item.*; import net.minecraft.item.*;
@@ -33,7 +34,7 @@ public class WaterPump extends HorizontalFacingBlock {
private static final VoxelShape WEST_SHAPE; private static final VoxelShape WEST_SHAPE;
public WaterPump() { public WaterPump() {
super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque());
this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH)); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH));
} }
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
@@ -73,7 +74,7 @@ public class WaterPump extends HorizontalFacingBlock {
builder.add(FACING); builder.add(FACING);
} }
@Override @Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
switch (state.get(FACING)) { switch (state.get(FACING)) {
case NORTH: return NORTH_SHAPE; case NORTH: return NORTH_SHAPE;
case EAST: return EAST_SHAPE; case EAST: return EAST_SHAPE;

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 80 km/h", "title": "Speed Limit: 80 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_eighty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 50 km/h", "title": "Speed Limit: 50 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_fifty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 5 km/h", "title": "Speed Limit: 5 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_five_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 40 km/h", "title": "Speed Limit: 40 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_forty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 90 km/h", "title": "Speed Limit: 90 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_ninety_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 100 km/h", "title": "Speed Limit: 100 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_onehundred_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 110 km/h", "title": "Speed Limit: 110 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_onehundredten_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,18 +9,6 @@
"title": "Straße", "title": "Straße",
"link_recipe": false, "link_recipe": false,
"text": "Eine Straße ist ideal, um darauf zu fahren." "text": "Eine Straße ist ideal, um darauf zu fahren."
},
{
"type": "stonecutting",
"recipe": "decorative:rocky_asphalt_to_road_stonecutting"
},
{
"type": "stonecutting",
"recipe": "decorative:road_to_road_white_short_stonecutting"
},
{
"type": "stonecutting",
"recipe": "decorative:road_to_road_white_short_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Straße mit langem weißem Streifen", "title": "Straße mit langem weißem Streifen",
"link_recipe": false, "link_recipe": false,
"text": "Eine Straße mit einem langem weißem Streifen in der Mitte." "text": "Eine Straße mit einem langem weißem Streifen in der Mitte."
},
{
"type": "stonecutting",
"recipe": "decorative:road_to_road_white_long_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Straße mit kurzem weißem Streifen", "title": "Straße mit kurzem weißem Streifen",
"link_recipe": false, "link_recipe": false,
"text": "Eine Straße mit einem kurzem weißem Streifen in der Mitte." "text": "Eine Straße mit einem kurzem weißem Streifen in der Mitte."
},
{
"type": "stonecutting",
"recipe": "decorative:road_to_road_white_short_stonecutting"
} }
] ]
} }

View File

@@ -9,18 +9,6 @@
"title": "Steiniger Asphalt", "title": "Steiniger Asphalt",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um Straßen herzustellen. Kann in der Welt gefunden werden." "text": "Wird benutzt, um Straßen herzustellen. Kann in der Welt gefunden werden."
},
{
"type": "stonecutting",
"recipe": "decorative:rocky_asphalt_to_road_stonecutting"
},
{
"type": "stonecutting",
"recipe": "decorative:rocky_asphalt_to_road_white_short_stonecutting"
},
{
"type": "stonecutting",
"recipe": "decorative:rocky_asphalt_to_road_white_long_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 70 km/h", "title": "Speed Limit: 70 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_seventy_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 60 km/h", "title": "Speed Limit: 60 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_sixty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Stoppschild", "title": "Stoppschild",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um den Verkehr zu beschränken." "text": "Wird benutzt, um den Verkehr zu beschränken."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_stop_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 10 km/h", "title": "Speed Limit: 10 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_ten_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 30 km/h", "title": "Speed Limit: 30 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_thirty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 20 km/h", "title": "Speed Limit: 20 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren." "text": "Wird benutzt, um die Geschwindigkeit von Autos zu regulieren."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_twenty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 80 km/h", "title": "Speed Limit: 80 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_eighty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 50 km/h", "title": "Speed Limit: 50 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_fifty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 5 km/h", "title": "Speed Limit: 5 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_five_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 40 km/h", "title": "Speed Limit: 40 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_forty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 90 km/h", "title": "Speed Limit: 90 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_ninety_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 100 km/h", "title": "Speed Limit: 100 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_onehundred_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 110 km/h", "title": "Speed Limit: 110 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_onehundredten_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,18 +9,6 @@
"title": "Road", "title": "Road",
"link_recipe": false, "link_recipe": false,
"text": "A road is a surface ideal for driving on it." "text": "A road is a surface ideal for driving on it."
},
{
"type": "stonecutting",
"recipe": "decorative:rocky_asphalt_to_road_stonecutting"
},
{
"type": "stonecutting",
"recipe": "decorative:road_to_road_white_short_stonecutting"
},
{
"type": "stonecutting",
"recipe": "decorative:road_to_road_white_short_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Road with long white stripe", "title": "Road with long white stripe",
"link_recipe": false, "link_recipe": false,
"text": "A road with a long white stripe in the middle." "text": "A road with a long white stripe in the middle."
},
{
"type": "stonecutting",
"recipe": "decorative:road_to_road_white_long_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Road with short white stripe", "title": "Road with short white stripe",
"link_recipe": false, "link_recipe": false,
"text": "A road with a short white stripe in the middle." "text": "A road with a short white stripe in the middle."
},
{
"type": "stonecutting",
"recipe": "decorative:road_to_road_white_short_stonecutting"
} }
] ]
} }

View File

@@ -9,18 +9,6 @@
"title": "Rocky Asphalt", "title": "Rocky Asphalt",
"link_recipe": false, "link_recipe": false,
"text": "Used to craft Roads." "text": "Used to craft Roads."
},
{
"type": "stonecutting",
"recipe": "decorative:rocky_asphalt_to_road_stonecutting"
},
{
"type": "stonecutting",
"recipe": "decorative:rocky_asphalt_to_road_white_short_stonecutting"
},
{
"type": "stonecutting",
"recipe": "decorative:rocky_asphalt_to_road_white_long_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 70 km/h", "title": "Speed Limit: 70 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_seventy_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 60 km/h", "title": "Speed Limit: 60 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_sixty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Stop Sign", "title": "Stop Sign",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating traffic." "text": "Used for regulating traffic."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_stop_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 10 km/h", "title": "Speed Limit: 10 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_ten_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 30 km/h", "title": "Speed Limit: 30 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_thirty_sign_stonecutting"
} }
] ]
} }

View File

@@ -9,10 +9,6 @@
"title": "Speed Limit: 20 km/h", "title": "Speed Limit: 20 km/h",
"link_recipe": false, "link_recipe": false,
"text": "Used for regulating speed of cars." "text": "Used for regulating speed of cars."
},
{
"type": "stonecutting",
"recipe": "decorative:empty_sign_to_twenty_sign_stonecutting"
} }
] ]
} }