3d9629013b
MinecraftForge/FML@9565529baf Updated to latest MCP and Minecraft 1.5.1 Pre-release. MinecraftForge/FML@a573faf92d Someone derped up this function bad, revert name.
136 lines
4.5 KiB
Diff
136 lines
4.5 KiB
Diff
--- ../src_base/minecraft/net/minecraft/block/BlockRailBase.java
|
|
+++ ../src_work/minecraft/net/minecraft/block/BlockRailBase.java
|
|
@@ -3,6 +3,7 @@
|
|
import java.util.Random;
|
|
import net.minecraft.block.material.Material;
|
|
import net.minecraft.creativetab.CreativeTabs;
|
|
+import net.minecraft.entity.item.EntityMinecart;
|
|
import net.minecraft.util.AxisAlignedBB;
|
|
import net.minecraft.util.MovingObjectPosition;
|
|
import net.minecraft.util.Vec3;
|
|
@@ -28,7 +29,7 @@
|
|
*/
|
|
public static final boolean isRailBlock(int par0)
|
|
{
|
|
- return par0 == Block.rail.blockID || par0 == Block.railPowered.blockID || par0 == Block.railDetector.blockID || par0 == Block.railActivator.blockID;
|
|
+ return Block.blocksList[par0] instanceof BlockRailBase;
|
|
}
|
|
|
|
protected BlockRailBase(int par1, boolean par2)
|
|
@@ -105,7 +106,7 @@
|
|
*/
|
|
public int getRenderType()
|
|
{
|
|
- return 9;
|
|
+ return renderType;
|
|
}
|
|
|
|
/**
|
|
@@ -242,4 +243,107 @@
|
|
par1World.notifyBlocksOfNeighborChange(par2, par3 - 1, par4, par5);
|
|
}
|
|
}
|
|
+
|
|
+ /**
|
|
+ * Return true if the rail can make corners.
|
|
+ * Used by placement logic.
|
|
+ * @param world The world.
|
|
+ * @param x The rail X coordinate.
|
|
+ * @param y The rail Y coordinate.
|
|
+ * @param z The rail Z coordinate.
|
|
+ * @return True if the rail can make corners.
|
|
+ */
|
|
+ public boolean isFlexibleRail(World world, int y, int x, int z)
|
|
+ {
|
|
+ return !isPowered;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Returns true if the rail can make up and down slopes.
|
|
+ * Used by placement logic.
|
|
+ * @param world The world.
|
|
+ * @param x The rail X coordinate.
|
|
+ * @param y The rail Y coordinate.
|
|
+ * @param z The rail Z coordinate.
|
|
+ * @return True if the rail can make slopes.
|
|
+ */
|
|
+ public boolean canMakeSlopes(World world, int x, int y, int z)
|
|
+ {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Return the rail's metadata (without the power bit if the rail uses one).
|
|
+ * Can be used to make the cart think the rail something other than it is,
|
|
+ * for example when making diamond junctions or switches.
|
|
+ * The cart parameter will often be null unless it it called from EntityMinecart.
|
|
+ *
|
|
+ * Valid rail metadata is defined as follows:
|
|
+ * 0x0: flat track going North-South
|
|
+ * 0x1: flat track going West-East
|
|
+ * 0x2: track ascending to the East
|
|
+ * 0x3: track ascending to the West
|
|
+ * 0x4: track ascending to the North
|
|
+ * 0x5: track ascending to the South
|
|
+ * 0x6: WestNorth corner (connecting East and South)
|
|
+ * 0x7: EastNorth corner (connecting West and South)
|
|
+ * 0x8: EastSouth corner (connecting West and North)
|
|
+ * 0x9: WestSouth corner (connecting East and North)
|
|
+ *
|
|
+ * @param world The world.
|
|
+ * @param cart The cart asking for the metadata, null if it is not called by EntityMinecart.
|
|
+ * @param y The rail X coordinate.
|
|
+ * @param x The rail Y coordinate.
|
|
+ * @param z The rail Z coordinate.
|
|
+ * @return The metadata.
|
|
+ */
|
|
+ public int getBasicRailMetadata(IBlockAccess world, EntityMinecart cart, int x, int y, int z)
|
|
+ {
|
|
+ int meta = world.getBlockMetadata(x, y, z);
|
|
+ if(isPowered)
|
|
+ {
|
|
+ meta = meta & 7;
|
|
+ }
|
|
+ return meta;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Returns the max speed of the rail at the specified position.
|
|
+ * @param world The world.
|
|
+ * @param cart The cart on the rail, may be null.
|
|
+ * @param x The rail X coordinate.
|
|
+ * @param y The rail Y coordinate.
|
|
+ * @param z The rail Z coordinate.
|
|
+ * @return The max speed of the current rail.
|
|
+ */
|
|
+ public float getRailMaxSpeed(World world, EntityMinecart cart, int y, int x, int z)
|
|
+ {
|
|
+ return 0.4f;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * This function is called by any minecart that passes over this rail.
|
|
+ * It is called once per update tick that the minecart is on the rail.
|
|
+ * @param world The world.
|
|
+ * @param cart The cart on the rail.
|
|
+ * @param y The rail X coordinate.
|
|
+ * @param x The rail Y coordinate.
|
|
+ * @param z The rail Z coordinate.
|
|
+ */
|
|
+ public void onMinecartPass(World world, EntityMinecart cart, int y, int x, int z)
|
|
+ {
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Forge: Moved render type to a field and a setter.
|
|
+ * This allows for a mod to change the render type
|
|
+ * for vanilla rails, and any mod rails that extend
|
|
+ * this class.
|
|
+ */
|
|
+ private int renderType = 9;
|
|
+
|
|
+ public void setRenderType(int value)
|
|
+ {
|
|
+ renderType = value;
|
|
+ }
|
|
}
|