mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-24 22:16:38 +01:00
Bug-fixes
- Reduced tracking range of mounted contraptions - Fixed carpets not able to be pushed directly - Fixed Water Wheels and Belt Tunnels crashing when rendered in a schematic preview
This commit is contained in:
parent
0a869190b2
commit
32cce4e9b9
5 changed files with 21 additions and 15 deletions
|
@ -21,11 +21,9 @@ import net.minecraftforge.fml.client.registry.RenderingRegistry;
|
||||||
|
|
||||||
public enum AllEntities {
|
public enum AllEntities {
|
||||||
|
|
||||||
CONTRAPTION(ContraptionEntity::new, EntityClassification.MISC, 30, 3, true,
|
CONTRAPTION(ContraptionEntity::new, EntityClassification.MISC, 5, 3, true, ContraptionEntity::build),
|
||||||
ContraptionEntity::build),
|
STATIONARY_CONTRAPTION(ContraptionEntity::new, EntityClassification.MISC, 20, 40, false, ContraptionEntity::build),
|
||||||
STATIONARY_CONTRAPTION(ContraptionEntity::new, EntityClassification.MISC, 30, 40,
|
SUPER_GLUE(SuperGlueEntity::new, EntityClassification.MISC, 10, Integer.MAX_VALUE, false, SuperGlueEntity::build),
|
||||||
false, ContraptionEntity::build),
|
|
||||||
SUPER_GLUE(SuperGlueEntity::new, EntityClassification.MISC, 30, Integer.MAX_VALUE, false, SuperGlueEntity::build),
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -53,8 +51,10 @@ public enum AllEntities {
|
||||||
for (AllEntities entity : values()) {
|
for (AllEntities entity : values()) {
|
||||||
String id = Lang.asId(entity.name());
|
String id = Lang.asId(entity.name());
|
||||||
ResourceLocation resourceLocation = new ResourceLocation(Create.ID, id);
|
ResourceLocation resourceLocation = new ResourceLocation(Create.ID, id);
|
||||||
Builder<? extends Entity> builder = EntityType.Builder.create(entity.factory, entity.group)
|
Builder<? extends Entity> builder = EntityType.Builder
|
||||||
.setTrackingRange(entity.range).setUpdateInterval(entity.updateFrequency)
|
.create(entity.factory, entity.group)
|
||||||
|
.setTrackingRange(entity.range)
|
||||||
|
.setUpdateInterval(entity.updateFrequency)
|
||||||
.setShouldReceiveVelocityUpdates(entity.sendVelocity);
|
.setShouldReceiveVelocityUpdates(entity.sendVelocity);
|
||||||
if (entity.propertyBuilder != null)
|
if (entity.propertyBuilder != null)
|
||||||
builder = entity.propertyBuilder.apply(builder);
|
builder = entity.propertyBuilder.apply(builder);
|
||||||
|
|
|
@ -216,6 +216,8 @@ public class BlockMovementTraits {
|
||||||
return state.get(BlockStateProperties.HORIZONTAL_FACING) == facing;
|
return state.get(BlockStateProperties.HORIZONTAL_FACING) == facing;
|
||||||
if (AllBlocks.ROPE_PULLEY.typeOf(state))
|
if (AllBlocks.ROPE_PULLEY.typeOf(state))
|
||||||
return facing == Direction.DOWN;
|
return facing == Direction.DOWN;
|
||||||
|
if (state.getBlock() instanceof CarpetBlock)
|
||||||
|
return facing == Direction.UP;
|
||||||
return isBrittle(state);
|
return isBrittle(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ import com.simibubi.create.modules.contraptions.components.contraptions.glue.Sup
|
||||||
import com.simibubi.create.modules.contraptions.components.contraptions.piston.MechanicalPistonBlock.PistonState;
|
import com.simibubi.create.modules.contraptions.components.contraptions.piston.MechanicalPistonBlock.PistonState;
|
||||||
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.block.CarpetBlock;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
import net.minecraft.nbt.ListNBT;
|
import net.minecraft.nbt.ListNBT;
|
||||||
import net.minecraft.state.properties.BlockStateProperties;
|
import net.minecraft.state.properties.BlockStateProperties;
|
||||||
|
@ -152,7 +153,7 @@ public class PistonContraption extends Contraption {
|
||||||
if (!BlockMovementTraits.movementNecessary(world, currentPos))
|
if (!BlockMovementTraits.movementNecessary(world, currentPos))
|
||||||
return true;
|
return true;
|
||||||
BlockState state = world.getBlockState(currentPos);
|
BlockState state = world.getBlockState(currentPos);
|
||||||
if (BlockMovementTraits.isBrittle(state))
|
if (BlockMovementTraits.isBrittle(state) && !(state.getBlock() instanceof CarpetBlock))
|
||||||
return true;
|
return true;
|
||||||
if (AllBlocks.MECHANICAL_PISTON_HEAD.typeOf(state) && state.get(FACING) == direction.getOpposite())
|
if (AllBlocks.MECHANICAL_PISTON_HEAD.typeOf(state) && state.get(FACING) == direction.getOpposite())
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.config.AllConfigs;
|
import com.simibubi.create.config.AllConfigs;
|
||||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||||
import com.simibubi.create.foundation.block.ITE;
|
import com.simibubi.create.foundation.block.ITE;
|
||||||
|
import com.simibubi.create.foundation.utility.WrappedWorld;
|
||||||
import com.simibubi.create.modules.contraptions.base.HorizontalKineticBlock;
|
import com.simibubi.create.modules.contraptions.base.HorizontalKineticBlock;
|
||||||
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
@ -63,7 +64,7 @@ public class WaterWheelBlock extends HorizontalKineticBlock implements ITE<Water
|
||||||
public BlockState updatePostPlacement(BlockState stateIn, Direction facing, BlockState facingState, IWorld worldIn,
|
public BlockState updatePostPlacement(BlockState stateIn, Direction facing, BlockState facingState, IWorld worldIn,
|
||||||
BlockPos currentPos, BlockPos facingPos) {
|
BlockPos currentPos, BlockPos facingPos) {
|
||||||
World world = worldIn.getWorld();
|
World world = worldIn.getWorld();
|
||||||
if (world == null)
|
if (world == null || worldIn instanceof WrappedWorld)
|
||||||
return stateIn;
|
return stateIn;
|
||||||
updateFlowAt(stateIn, world, currentPos, facing);
|
updateFlowAt(stateIn, world, currentPos, facing);
|
||||||
updateWheelSpeed(worldIn, currentPos);
|
updateWheelSpeed(worldIn, currentPos);
|
||||||
|
|
|
@ -7,6 +7,7 @@ import java.util.List;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.foundation.block.ITE;
|
import com.simibubi.create.foundation.block.ITE;
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
import com.simibubi.create.foundation.utility.WrappedWorld;
|
||||||
import com.simibubi.create.modules.contraptions.IWrenchable;
|
import com.simibubi.create.modules.contraptions.IWrenchable;
|
||||||
import com.simibubi.create.modules.contraptions.relays.belt.BeltBlock;
|
import com.simibubi.create.modules.contraptions.relays.belt.BeltBlock;
|
||||||
import com.simibubi.create.modules.contraptions.relays.belt.BeltBlock.Slope;
|
import com.simibubi.create.modules.contraptions.relays.belt.BeltBlock.Slope;
|
||||||
|
@ -110,6 +111,7 @@ public class BeltTunnelBlock extends Block implements ITE<BeltTunnelTileEntity>,
|
||||||
@Override
|
@Override
|
||||||
public BlockState updatePostPlacement(BlockState state, Direction facing, BlockState facingState, IWorld worldIn,
|
public BlockState updatePostPlacement(BlockState state, Direction facing, BlockState facingState, IWorld worldIn,
|
||||||
BlockPos currentPos, BlockPos facingPos) {
|
BlockPos currentPos, BlockPos facingPos) {
|
||||||
|
if (!(worldIn instanceof WrappedWorld))
|
||||||
withTileEntityDo(worldIn, currentPos, BeltTunnelTileEntity::initFlaps);
|
withTileEntityDo(worldIn, currentPos, BeltTunnelTileEntity::initFlaps);
|
||||||
BlockState tunnelState = getTunnelState(worldIn, currentPos);
|
BlockState tunnelState = getTunnelState(worldIn, currentPos);
|
||||||
|
|
||||||
|
@ -166,11 +168,11 @@ public class BeltTunnelBlock extends Block implements ITE<BeltTunnelTileEntity>,
|
||||||
// T and Cross
|
// T and Cross
|
||||||
Direction left = Direction.getFacingFromAxis(AxisDirection.POSITIVE, axis).rotateY();
|
Direction left = Direction.getFacingFromAxis(AxisDirection.POSITIVE, axis).rotateY();
|
||||||
BlockState leftState = reader.getBlockState(pos.offset(left).down());
|
BlockState leftState = reader.getBlockState(pos.offset(left).down());
|
||||||
boolean onLeft = AllBlocks.BELT.typeOf(leftState)
|
boolean onLeft =
|
||||||
&& leftState.get(BeltBlock.HORIZONTAL_FACING).getAxis() != axis;
|
AllBlocks.BELT.typeOf(leftState) && leftState.get(BeltBlock.HORIZONTAL_FACING).getAxis() != axis;
|
||||||
BlockState rightState = reader.getBlockState(pos.offset(left.getOpposite()).down());
|
BlockState rightState = reader.getBlockState(pos.offset(left.getOpposite()).down());
|
||||||
boolean onRight = AllBlocks.BELT.typeOf(rightState)
|
boolean onRight =
|
||||||
&& rightState.get(BeltBlock.HORIZONTAL_FACING).getAxis() != axis;
|
AllBlocks.BELT.typeOf(rightState) && rightState.get(BeltBlock.HORIZONTAL_FACING).getAxis() != axis;
|
||||||
|
|
||||||
if (onLeft && onRight)
|
if (onLeft && onRight)
|
||||||
state = state.with(SHAPE, Shape.CROSS);
|
state = state.with(SHAPE, Shape.CROSS);
|
||||||
|
|
Loading…
Reference in a new issue