private bool Func_592_c(int i, int j, int k) { net.minecraft.src.RailLogic raillogic = GetMinecartTrackLogic(new net.minecraft.src.ChunkPosition (i, j, k)); if (raillogic == null) { return(false); } else { raillogic.Func_591_b(); return(raillogic.HandleKeyPress(this)); } }
public virtual void Func_596_a(bool flag, bool flag1) { bool flag2 = Func_592_c(trackX, trackY, trackZ - 1); bool flag3 = Func_592_c(trackX, trackY, trackZ + 1); bool flag4 = Func_592_c(trackX - 1, trackY, trackZ); bool flag5 = Func_592_c(trackX + 1, trackY, trackZ); byte byte0 = unchecked ((byte)(-1)); if ((flag2 || flag3) && !flag4 && !flag5) { byte0 = 0; } if ((flag4 || flag5) && !flag2 && !flag3) { byte0 = 1; } if (!field_27084_f) { if (flag3 && flag5 && !flag2 && !flag4) { byte0 = 6; } if (flag3 && flag4 && !flag2 && !flag5) { byte0 = 7; } if (flag2 && flag4 && !flag3 && !flag5) { byte0 = 8; } if (flag2 && flag5 && !flag3 && !flag4) { byte0 = 9; } } if (byte0 == -1) { if (flag2 || flag3) { byte0 = 0; } if (flag4 || flag5) { byte0 = 1; } if (!field_27084_f) { if (flag) { if (flag3 && flag5) { byte0 = 6; } if (flag4 && flag3) { byte0 = 7; } if (flag5 && flag2) { byte0 = 9; } if (flag2 && flag4) { byte0 = 8; } } else { if (flag2 && flag4) { byte0 = 8; } if (flag5 && flag2) { byte0 = 9; } if (flag4 && flag3) { byte0 = 7; } if (flag3 && flag5) { byte0 = 6; } } } } if (byte0 == 0) { if (net.minecraft.src.BlockRail.Func_27029_g(worldObj, trackX, trackY + 1, trackZ - 1)) { byte0 = 4; } if (net.minecraft.src.BlockRail.Func_27029_g(worldObj, trackX, trackY + 1, trackZ + 1)) { byte0 = 5; } } if (byte0 == 1) { if (net.minecraft.src.BlockRail.Func_27029_g(worldObj, trackX + 1, trackY + 1, trackZ )) { byte0 = 2; } if (net.minecraft.src.BlockRail.Func_27029_g(worldObj, trackX - 1, trackY + 1, trackZ )) { byte0 = 3; } } if (((sbyte)byte0) < 0) { byte0 = 0; } Func_27083_a(byte0); int i = byte0; if (field_27084_f) { i = worldObj.GetBlockMetadata(trackX, trackY, trackZ) & 8 | byte0; } if (flag1 || worldObj.GetBlockMetadata(trackX, trackY, trackZ) != i) { worldObj.SetBlockMetadataWithNotify(trackX, trackY, trackZ, i); for (int j = 0; j < connectedTracks.Count; j++) { net.minecraft.src.RailLogic raillogic = GetMinecartTrackLogic((net.minecraft.src.ChunkPosition )connectedTracks[j]); if (raillogic == null) { continue; } raillogic.Func_591_b(); if (raillogic.HandleKeyPress(this)) { raillogic.Func_598_d(this); } } } }