Exemple #1
0
        private bool func_592_c(int i, int j, int k)
        {
            MinecartTrackLogic minecarttracklogic = getMinecartTrackLogic(new ChunkPosition(i, j, k));

            if (minecarttracklogic == null)
            {
                return(false);
            }
            else
            {
                minecarttracklogic.func_591_b();
                return(minecarttracklogic.handleKeyPress(this));
            }
        }
Exemple #2
0
        public void func_596_a(bool flag)
        {
            bool flag1 = func_592_c(trackX, trackY, trackZ - 1);
            bool flag2 = func_592_c(trackX, trackY, trackZ + 1);
            bool flag3 = func_592_c(trackX - 1, trackY, trackZ);
            bool flag4 = func_592_c(trackX + 1, trackY, trackZ);
            int  i     = -1;

            if ((flag1 || flag2) && !flag3 && !flag4)
            {
                i = 0;
            }
            if ((flag3 || flag4) && !flag1 && !flag2)
            {
                i = 1;
            }
            if (flag2 && flag4 && !flag1 && !flag3)
            {
                i = 6;
            }
            if (flag2 && flag3 && !flag1 && !flag4)
            {
                i = 7;
            }
            if (flag1 && flag3 && !flag2 && !flag4)
            {
                i = 8;
            }
            if (flag1 && flag4 && !flag2 && !flag3)
            {
                i = 9;
            }
            if (i == -1)
            {
                if (flag1 || flag2)
                {
                    i = 0;
                }
                if (flag3 || flag4)
                {
                    i = 1;
                }
                if (flag)
                {
                    if (flag2 && flag4)
                    {
                        i = 6;
                    }
                    if (flag3 && flag2)
                    {
                        i = 7;
                    }
                    if (flag4 && flag1)
                    {
                        i = 9;
                    }
                    if (flag1 && flag3)
                    {
                        i = 8;
                    }
                }
                else
                {
                    if (flag1 && flag3)
                    {
                        i = 8;
                    }
                    if (flag4 && flag1)
                    {
                        i = 9;
                    }
                    if (flag3 && flag2)
                    {
                        i = 7;
                    }
                    if (flag2 && flag4)
                    {
                        i = 6;
                    }
                }
            }
            if (i == 0)
            {
                if (worldObj.getBlockId(trackX, trackY + 1, trackZ - 1) == minecartTrack.blockID)
                {
                    i = 4;
                }
                if (worldObj.getBlockId(trackX, trackY + 1, trackZ + 1) == minecartTrack.blockID)
                {
                    i = 5;
                }
            }
            if (i == 1)
            {
                if (worldObj.getBlockId(trackX + 1, trackY + 1, trackZ) == minecartTrack.blockID)
                {
                    i = 2;
                }
                if (worldObj.getBlockId(trackX - 1, trackY + 1, trackZ) == minecartTrack.blockID)
                {
                    i = 3;
                }
            }
            if (i < 0)
            {
                i = 0;
            }
            trackMetadata = i;
            calculateConnectedTracks();
            worldObj.setBlockMetadataWithNotify(trackX, trackY, trackZ, i);
            for (int j = 0; j < connectedTracks.size(); j++)
            {
                MinecartTrackLogic minecarttracklogic = getMinecartTrackLogic((ChunkPosition)connectedTracks.get(j));
                if (minecarttracklogic == null)
                {
                    continue;
                }
                minecarttracklogic.func_591_b();
                if (minecarttracklogic.handleKeyPress(this))
                {
                    minecarttracklogic.func_598_d(this);
                }
            }
        }