Fix #4772: add an "isActivator" boolean to powered rails (#4774)

This commit is contained in:
Joseph C. Sible 2018-04-22 21:58:21 -04:00 committed by LexManos
parent fc799564ed
commit c9f035cf03
2 changed files with 29 additions and 2 deletions

View File

@ -1567,6 +1567,15 @@
public static void func_149671_p()
{
func_176215_a(0, field_176230_a, (new BlockAir()).func_149663_c("air"));
@@ -1105,7 +2462,7 @@
Block block11 = (new BlockQuartz()).func_149672_a(SoundType.field_185851_d).func_149711_c(0.8F).func_149663_c("quartzBlock");
func_176219_a(155, "quartz_block", block11);
func_176219_a(156, "quartz_stairs", (new BlockStairs(block11.func_176223_P().func_177226_a(BlockQuartz.field_176335_a, BlockQuartz.EnumType.DEFAULT))).func_149663_c("stairsQuartz"));
- func_176219_a(157, "activator_rail", (new BlockRailPowered()).func_149711_c(0.7F).func_149672_a(SoundType.field_185852_e).func_149663_c("activatorRail"));
+ func_176219_a(157, "activator_rail", (new BlockRailPowered(true)).func_149711_c(0.7F).func_149672_a(SoundType.field_185852_e).func_149663_c("activatorRail"));
func_176219_a(158, "dropper", (new BlockDropper()).func_149711_c(3.5F).func_149672_a(SoundType.field_185851_d).func_149663_c("dropper"));
func_176219_a(159, "stained_hardened_clay", (new BlockStainedHardenedClay()).func_149711_c(1.25F).func_149752_b(7.0F).func_149672_a(SoundType.field_185851_d).func_149663_c("clayHardenedStained"));
func_176219_a(160, "stained_glass_pane", (new BlockStainedGlassPane()).func_149711_c(0.3F).func_149672_a(SoundType.field_185853_f).func_149663_c("thinStainedGlass"));
@@ -1230,31 +2587,6 @@
block15.field_149783_u = flag;
}

View File

@ -1,11 +1,29 @@
--- ../src-base/minecraft/net/minecraft/block/BlockRailPowered.java
+++ ../src-work/minecraft/net/minecraft/block/BlockRailPowered.java
@@ -146,7 +146,7 @@
@@ -23,9 +23,17 @@
});
public static final PropertyBool field_176569_M = PropertyBool.func_177716_a("powered");
+ private final boolean isActivator;
+
protected BlockRailPowered()
{
+ this(false);
+ }
+
+ protected BlockRailPowered(boolean isActivator)
+ {
super(true);
+ this.isActivator = isActivator;
this.func_180632_j(this.field_176227_L.func_177621_b().func_177226_a(field_176568_b, BlockRailBase.EnumRailDirection.NORTH_SOUTH).func_177226_a(field_176569_M, Boolean.valueOf(false)));
}
@@ -146,7 +154,7 @@
{
IBlockState iblockstate = p_176567_1_.func_180495_p(p_176567_2_);
- if (iblockstate.func_177230_c() != this)
+ if (!(iblockstate.func_177230_c() instanceof BlockRailPowered))
+ if (!(iblockstate.func_177230_c() instanceof BlockRailPowered) || isActivator != ((BlockRailPowered)iblockstate.func_177230_c()).isActivator)
{
return false;
}