47 lines
2.6 KiB
Diff
47 lines
2.6 KiB
Diff
--- a/net/minecraft/block/PoweredRailBlock.java
|
|
+++ b/net/minecraft/block/PoweredRailBlock.java
|
|
@@ -14,10 +14,16 @@
|
|
public class PoweredRailBlock extends AbstractRailBlock {
|
|
public static final EnumProperty<RailShape> field_176568_b = BlockStateProperties.field_208166_S;
|
|
public static final BooleanProperty field_176569_M = BlockStateProperties.field_208194_u;
|
|
+ private final boolean isActivator; // TRUE for an Activator Rail, FALSE for Powered Rail
|
|
|
|
public PoweredRailBlock(AbstractBlock.Properties p_i48349_1_) {
|
|
- super(true, p_i48349_1_);
|
|
+ this(p_i48349_1_, false);
|
|
+ }
|
|
+
|
|
+ protected PoweredRailBlock(AbstractBlock.Properties builder, boolean isPoweredRail) {
|
|
+ super(true, builder);
|
|
this.func_180632_j(this.field_176227_L.func_177621_b().func_206870_a(field_176568_b, RailShape.NORTH_SOUTH).func_206870_a(field_176569_M, Boolean.valueOf(false)));
|
|
+ this.isActivator = !isPoweredRail;
|
|
}
|
|
|
|
protected boolean func_176566_a(World p_176566_1_, BlockPos p_176566_2_, BlockState p_176566_3_, boolean p_176566_4_, int p_176566_5_) {
|
|
@@ -99,13 +105,13 @@
|
|
|
|
protected boolean func_208071_a(World p_208071_1_, BlockPos p_208071_2_, boolean p_208071_3_, int p_208071_4_, RailShape p_208071_5_) {
|
|
BlockState blockstate = p_208071_1_.func_180495_p(p_208071_2_);
|
|
- if (!blockstate.func_203425_a(this)) {
|
|
+ if (!(blockstate.func_177230_c() instanceof PoweredRailBlock)) {
|
|
return false;
|
|
} else {
|
|
- RailShape railshape = blockstate.func_177229_b(field_176568_b);
|
|
+ RailShape railshape = getRailDirection(blockstate, p_208071_1_, p_208071_2_, null);
|
|
if (p_208071_5_ != RailShape.EAST_WEST || railshape != RailShape.NORTH_SOUTH && railshape != RailShape.ASCENDING_NORTH && railshape != RailShape.ASCENDING_SOUTH) {
|
|
if (p_208071_5_ != RailShape.NORTH_SOUTH || railshape != RailShape.EAST_WEST && railshape != RailShape.ASCENDING_EAST && railshape != RailShape.ASCENDING_WEST) {
|
|
- if (blockstate.func_177229_b(field_176569_M)) {
|
|
+ if (isActivator == (((PoweredRailBlock) blockstate.func_177230_c()).isActivator)) {
|
|
return p_208071_1_.func_175640_z(p_208071_2_) ? true : this.func_176566_a(p_208071_1_, p_208071_2_, blockstate, p_208071_3_, p_208071_4_ + 1);
|
|
} else {
|
|
return false;
|
|
@@ -255,4 +261,8 @@
|
|
protected void func_206840_a(StateContainer.Builder<Block, BlockState> p_206840_1_) {
|
|
p_206840_1_.func_206894_a(field_176568_b, field_176569_M);
|
|
}
|
|
+
|
|
+ public boolean isActivatorRail() {
|
|
+ return isActivator;
|
|
+ }
|
|
}
|