MCP Update. Fixed a few small bugs in the linux scripts.

This commit is contained in:
Eloraam 2012-03-12 15:38:09 -04:00
parent 249ba1248d
commit 340eede26c
60 changed files with 1290 additions and 1116 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,16 +7,16 @@
import java.util.ArrayList;
import java.util.Random;
@@ -443,7 +444,7 @@
@@ -449,7 +450,7 @@
public boolean func_48205_p()
{
- return this.field_48207_bU;
- return this.isBlockContainer;
+ return hasTileEntity(0);
}
/**
@@ -464,7 +465,7 @@
@@ -470,7 +471,7 @@
*/
public float getBlockBrightness(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
{
@ -25,7 +25,7 @@
}
/**
@@ -472,7 +473,7 @@
@@ -478,7 +479,7 @@
*/
public int getMixedBrightnessForBlock(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
{
@ -34,7 +34,7 @@
}
/**
@@ -629,11 +630,14 @@
@@ -635,11 +636,14 @@
}
/**
@ -51,7 +51,7 @@
}
/**
@@ -653,16 +657,12 @@
@@ -659,16 +663,12 @@
{
int var8 = this.quantityDroppedWithBonus(par7, par1World.rand);
@ -71,16 +71,16 @@
}
}
}
@@ -972,7 +972,7 @@
@@ -981,7 +981,7 @@
par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1);
par2EntityPlayer.addExhaustion(0.025F);
- if (this.renderAsNormalBlock() && !this.field_48207_bU && EnchantmentHelper.getSilkTouchModifier(par2EntityPlayer.inventory))
- if (this.renderAsNormalBlock() && !this.isBlockContainer && EnchantmentHelper.getSilkTouchModifier(par2EntityPlayer.inventory))
+ if (this.renderAsNormalBlock() && !hasTileEntity(par6) && EnchantmentHelper.getSilkTouchModifier(par2EntityPlayer.inventory))
{
ItemStack var8 = this.createStackedBlock(par6);
@@ -1086,6 +1086,362 @@
@@ -1099,6 +1099,362 @@
*/
public void onFallenUpon(World par1World, int par2, int par3, int par4, Entity par5Entity, float par6) {}
@ -379,7 +379,7 @@
+ */
+ public boolean hasTileEntity(int metadata)
+ {
+ return field_48207_bU;
+ return isBlockContainer;
+ }
+
+ /**

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft/net/minecraft/src/BlockButton.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/BlockButton.java 0000-00-00 00:00:00.000000000 -0000
@@ -46,7 +46,10 @@
@@ -49,7 +49,10 @@
*/
public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5)
{
- return par5 == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1) ? true : (par5 == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1) ? true : (par5 == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4) ? true : par5 == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4)));
@ -12,7 +12,7 @@
}
/**
@@ -54,7 +57,10 @@
@@ -57,7 +60,10 @@
*/
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{
@ -24,7 +24,7 @@
}
/**
@@ -67,19 +73,19 @@
@@ -70,19 +76,19 @@
int var7 = var6 & 8;
var6 &= 7;
@ -48,7 +48,7 @@
{
var6 = 1;
}
@@ -96,7 +102,11 @@
@@ -99,7 +105,11 @@
*/
private int getOrientation(World par1World, int par2, int par3, int par4)
{
@ -61,7 +61,7 @@
}
/**
@@ -110,22 +120,22 @@
@@ -113,22 +123,22 @@
int var6 = par1World.getBlockMetadata(par2, par3, par4) & 7;
boolean var7 = false;

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/src/BlockChest.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/BlockChest.java 0000-00-00 00:00:00.000000000 -0000
@@ -494,23 +494,23 @@
@@ -497,23 +497,23 @@
{
return true;
}

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft/net/minecraft/src/BlockLever.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/BlockLever.java 0000-00-00 00:00:00.000000000 -0000
@@ -43,7 +43,11 @@
@@ -46,7 +46,11 @@
*/
public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5)
{
- return par5 == 1 && par1World.isBlockNormalCube(par2, par3 - 1, par4) ? true : (par5 == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1) ? true : (par5 == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1) ? true : (par5 == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4) ? true : par5 == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4))));
@ -13,7 +13,7 @@
}
/**
@@ -51,7 +55,11 @@
@@ -54,7 +58,11 @@
*/
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{
@ -26,7 +26,7 @@
}
/**
@@ -65,27 +73,27 @@
@@ -68,27 +76,27 @@
var6 &= 7;
var6 = -1;
@ -59,7 +59,7 @@
{
var6 = 1;
}
@@ -112,32 +120,32 @@
@@ -115,32 +123,32 @@
int var6 = par1World.getBlockMetadata(par2, par3, par4) & 7;
boolean var7 = false;

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/src/BlockPistonBase.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/BlockPistonBase.java 0000-00-00 00:00:00.000000000 -0000
@@ -364,7 +364,7 @@
@@ -370,7 +370,7 @@
return false;
}

View File

@ -19,8 +19,8 @@
{
par1World.setBlockWithNotify(par2, par3, par4, 0);
this.dropBlockAsItem(par1World, par2, par3, par4, var6, 0);
@@ -241,6 +244,10 @@
@@ -244,6 +247,10 @@
*/
public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5)
{
+ if (disableValidation)
@ -30,7 +30,7 @@
if (par5 == 0)
{
return false;
@@ -271,7 +278,7 @@
@@ -274,7 +281,7 @@
--par2;
}
@ -39,7 +39,7 @@
}
}
@@ -286,6 +293,11 @@
@@ -289,6 +296,11 @@
*/
private static boolean isValidSupportBlock(int par0)
{

View File

@ -13,7 +13,7 @@
{
public BlockVine(int par1)
{
@@ -429,14 +432,26 @@
@@ -432,14 +435,26 @@
*/
public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
{

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/src/Chunk.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/Chunk.java 0000-00-00 00:00:00.000000000 -0000
@@ -551,7 +551,7 @@
@@ -569,7 +569,7 @@
{
Block.blocksList[var8].onBlockRemoval(this.worldObj, var11, par2, var12);
}
@ -9,7 +9,7 @@
{
this.worldObj.removeBlockTileEntity(var11, par2, var12);
}
@@ -589,32 +589,23 @@
@@ -607,32 +607,23 @@
Block.blocksList[par4].onBlockAdded(this.worldObj, var11, par2, var12);
}
@ -45,16 +45,16 @@
this.isModified = true;
return true;
}
@@ -645,7 +636,7 @@
var5.func_48690_b(par1, par2 & 15, par3, par4);
@@ -663,7 +654,7 @@
var5.setExtBlockMetadata(par1, par2 & 15, par3, par4);
int var7 = var5.getExtBlockID(par1, par2 & 15, par3);
- if (var7 > 0 && Block.blocksList[var7] instanceof BlockContainer)
+ if (var7 > 0 && Block.blocksList[var7] != null && Block.blocksList[var7].hasTileEntity(var5.func_48694_b(par1, par3 & 15, par3)))
+ if (var7 > 0 && Block.blocksList[var7] != null && Block.blocksList[var7].hasTileEntity(var5.getExtBlockMetadata(par1, par3 & 15, par3)))
{
TileEntity var8 = this.getChunkBlockTileEntity(par1, par2, par3);
@@ -812,33 +803,31 @@
@@ -830,33 +821,31 @@
ChunkPosition var4 = new ChunkPosition(par1, par2, par3);
TileEntity var5 = (TileEntity)this.chunkTileEntityMap.get(var4);
@ -98,7 +98,7 @@
}
/**
@@ -853,7 +842,7 @@
@@ -871,7 +860,7 @@
if (this.isChunkLoaded)
{
@ -107,7 +107,7 @@
}
}
@@ -868,8 +857,14 @@
@@ -886,8 +875,14 @@
par4TileEntity.yCoord = par2;
par4TileEntity.zCoord = this.zPosition * 16 + par3;
@ -123,7 +123,7 @@
par4TileEntity.validate();
this.chunkTileEntityMap.put(var5, par4TileEntity);
}
@@ -1183,6 +1178,16 @@
@@ -1201,6 +1196,16 @@
public void func_48494_a(byte[] par1ArrayOfByte, int par2, int par3, boolean par4)
{
@ -140,7 +140,7 @@
int var5 = 0;
int var6;
@@ -1286,6 +1291,29 @@
@@ -1304,6 +1309,29 @@
TileEntity var9 = (TileEntity)var10.next();
var9.updateContainingBlockInfo();
}
@ -170,7 +170,7 @@
}
public BiomeGenBase func_48490_a(int par1, int par2, WorldChunkManager par3WorldChunkManager)
@@ -1374,4 +1402,18 @@
@@ -1407,4 +1435,18 @@
}
}
}

View File

@ -9,8 +9,8 @@
public class ChunkProvider implements IChunkProvider
{
/** A set of dropped chunks. Currently not used in single player. */
@@ -48,6 +50,11 @@
@@ -51,6 +53,11 @@
*/
public void dropChunk(int par1, int par2)
{
+ if(!ForgeHooks.canUnloadChunk(worldObj.getChunkFromChunkCoords(par1, par2)))

View File

@ -2,7 +2,7 @@
+++ ../src_work/minecraft/net/minecraft/src/Entity.java 0000-00-00 00:00:00.000000000 -0000
@@ -177,6 +177,9 @@
*/
public boolean ignoreFrustrumCheck;
public boolean ignoreFrustumCheck;
public boolean isAirBorne;
+
+ /** Forge: Used to store custom data for each entity. */

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/src/EntityLiving.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/EntityLiving.java 0000-00-00 00:00:00.000000000 -0000
@@ -49,7 +49,7 @@
@@ -55,7 +55,7 @@
* in each step in the damage calculations, this is set to the 'carryover' that would result if someone was damaged
* .25 hearts (for example), and added to the damage in the next step
*/
@ -9,7 +9,7 @@
/** Number of ticks since this EntityLiving last produced its sound */
private int livingSoundTime;
@@ -1290,7 +1290,7 @@
@@ -1320,7 +1320,7 @@
int var2 = MathHelper.floor_double(this.boundingBox.minY);
int var3 = MathHelper.floor_double(this.posZ);
int var4 = this.worldObj.getBlockId(var1, var2, var3);

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/src/EntityMinecart.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/EntityMinecart.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,28 +1,48 @@
@@ -1,30 +1,50 @@
package net.minecraft.src;
+import java.util.ArrayList;
@ -23,6 +23,9 @@
public double pushX;
public double pushZ;
- private static final int[][][] field_855_j = new int[][][] {{{0, 0, -1}, {0, 0, 1}}, {{ -1, 0, 0}, {1, 0, 0}}, {{ -1, -1, 0}, {1, 0, 0}}, {{ -1, 0, 0}, {1, -1, 0}}, {{0, 0, -1}, {0, -1, 1}}, {{0, -1, -1}, {0, 0, 1}}, {{0, 0, 1}, {1, 0, 0}}, {{0, 0, 1}, { -1, 0, 0}}, {{0, 0, -1}, { -1, 0, 0}}, {{0, 0, -1}, {1, 0, 0}}};
+ protected static final int[][][] field_855_j = new int[][][] {{{0, 0, -1}, {0, 0, 1}}, {{ -1, 0, 0}, {1, 0, 0}}, {{ -1, -1, 0}, {1, 0, 0}}, {{ -1, 0, 0}, {1, -1, 0}}, {{0, 0, -1}, {0, -1, 1}}, {{0, -1, -1}, {0, 0, 1}}, {{0, 0, 1}, {1, 0, 0}}, {{0, 0, 1}, { -1, 0, 0}}, {{0, 0, -1}, { -1, 0, 0}}, {{0, 0, -1}, {1, 0, 0}}};
/** appears to be the progress of the turn */
- private int turnProgress;
- private double minecartX;
- private double minecartY;
@ -32,7 +35,6 @@
- private double velocityX;
- private double velocityY;
- private double velocityZ;
+ protected static final int[][][] field_855_j = new int[][][] {{{0, 0, -1}, {0, 0, 1}}, {{ -1, 0, 0}, {1, 0, 0}}, {{ -1, -1, 0}, {1, 0, 0}}, {{ -1, 0, 0}, {1, -1, 0}}, {{0, 0, -1}, {0, -1, 1}}, {{0, -1, -1}, {0, 0, 1}}, {{0, 0, 1}, {1, 0, 0}}, {{0, 0, 1}, { -1, 0, 0}}, {{0, 0, -1}, { -1, 0, 0}}, {{0, 0, -1}, {1, 0, 0}}};
+ protected int turnProgress;
+ protected double minecartX;
+ protected double minecartY;
@ -62,7 +64,7 @@
public EntityMinecart(World par1World)
{
@@ -33,6 +53,18 @@
@@ -35,6 +55,18 @@
this.preventEntitySpawning = true;
this.setSize(0.98F, 0.7F);
this.yOffset = this.height / 2.0F;
@ -81,7 +83,7 @@
}
/**
@@ -58,6 +90,10 @@
@@ -60,6 +92,10 @@
*/
public AxisAlignedBB getCollisionBox(Entity par1Entity)
{
@ -92,7 +94,7 @@
return par1Entity.boundingBox;
}
@@ -66,6 +102,10 @@
@@ -68,6 +104,10 @@
*/
public AxisAlignedBB getBoundingBox()
{
@ -103,7 +105,7 @@
return null;
}
@@ -74,7 +114,7 @@
@@ -76,7 +116,7 @@
*/
public boolean canBePushed()
{
@ -112,7 +114,7 @@
}
public EntityMinecart(World par1World, double par2, double par4, double par6, int par8)
@@ -118,48 +158,7 @@
@@ -120,48 +160,7 @@
}
this.setEntityDead();
@ -162,7 +164,7 @@
}
return true;
@@ -241,7 +240,7 @@
@@ -243,7 +242,7 @@
this.func_41024_b(this.func_41025_i() - 1);
}
@ -171,7 +173,7 @@
{
this.worldObj.spawnParticle("largesmoke", this.posX, this.posY + 0.8D, this.posZ, 0.0D, 0.0D, 0.0D);
}
@@ -296,25 +295,20 @@
@@ -298,25 +297,20 @@
double var6 = 0.0078125D;
int var8 = this.worldObj.getBlockId(var1, var2, var3);
@ -200,7 +202,7 @@
if (var10 >= 2 && var10 <= 5)
{
this.posY = (double)(var2 + 1);
@@ -357,7 +351,7 @@
@@ -359,7 +353,7 @@
this.motionZ = var22 * var16 / var18;
double var24;
@ -209,7 +211,7 @@
{
var24 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
@@ -407,36 +401,8 @@
@@ -409,36 +403,8 @@
this.posX = var26 + var14 * var24;
this.posZ = var28 + var16 * var24;
this.setPosition(this.posX, this.posY + (double)this.yOffset, this.posZ);
@ -248,7 +250,7 @@
if (var13[0][1] != 0 && MathHelper.floor_double(this.posX) - var1 == var13[0][0] && MathHelper.floor_double(this.posZ) - var3 == var13[0][2])
{
@@ -447,41 +413,7 @@
@@ -449,41 +415,7 @@
this.setPosition(this.posX, this.posY + (double)var13[1][1], this.posZ);
}
@ -291,18 +293,16 @@
Vec3D var52 = this.func_514_g(this.posX, this.posY, this.posZ);
@@ -511,29 +443,14 @@
@@ -513,29 +445,14 @@
double var41;
- if (this.minecartType == 2)
+ updatePushForces();
+
+ if (shouldDoRailFunctions())
{
- {
- var41 = (double)MathHelper.sqrt_double(this.pushX * this.pushX + this.pushZ * this.pushZ);
-
- if (var41 > 0.01D && this.motionX * this.motionX + this.motionZ * this.motionZ > 0.001D)
+ updatePushForces();
- if (var41 > 0.01D && this.motionX * this.motionX + this.motionZ * this.motionZ > 0.0010D)
- {
- this.pushX /= var41;
- this.pushZ /= var41;
@ -318,6 +318,8 @@
- this.pushZ = this.motionZ;
- }
- }
+ if(shouldDoRailFunctions())
+ {
+ ((BlockRail)Block.blocksList[var8]).onMinecartPass(worldObj, this, var1, var2, var3);
}
@ -326,7 +328,7 @@
{
var41 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
@@ -569,41 +486,7 @@
@@ -571,41 +488,7 @@
}
else
{
@ -369,7 +371,7 @@
}
this.rotationPitch = 0.0F;
@@ -639,7 +522,18 @@
@@ -641,7 +524,18 @@
}
this.setRotation(this.rotationYaw, this.rotationPitch);
@ -389,7 +391,7 @@
if (var15 != null && var15.size() > 0)
{
@@ -664,17 +558,8 @@
@@ -666,17 +560,8 @@
this.riddenByEntity = null;
}
@ -409,7 +411,7 @@
}
}
@@ -697,12 +582,7 @@
@@ -699,12 +584,7 @@
}
else
{
@ -423,7 +425,7 @@
par3 = (double)var10;
@@ -748,14 +628,9 @@
@@ -750,14 +630,9 @@
if (BlockRail.isRailBlock(var10))
{
@ -439,7 +441,7 @@
if (var11 >= 2 && var11 <= 5)
{
par3 = (double)(var8 + 1);
@@ -820,13 +695,14 @@
@@ -822,13 +697,14 @@
{
par1NBTTagCompound.setInteger("Type", this.minecartType);
@ -457,7 +459,7 @@
{
NBTTagList var2 = new NBTTagList();
@@ -852,13 +728,14 @@
@@ -854,13 +730,14 @@
{
this.minecartType = par1NBTTagCompound.getInteger("Type");
@ -475,7 +477,7 @@
{
NBTTagList var2 = par1NBTTagCompound.getTagList("Items");
this.cargoItems = new ItemStack[this.getSizeInventory()];
@@ -886,11 +763,19 @@
@@ -888,11 +765,19 @@
*/
public void applyEntityCollision(Entity par1Entity)
{
@ -496,7 +498,7 @@
{
par1Entity.mountEntity(this);
}
@@ -936,7 +821,7 @@
@@ -938,7 +823,7 @@
double var18 = par1Entity.motionX + this.motionX;
double var20 = par1Entity.motionZ + this.motionZ;
@ -505,7 +507,7 @@
{
this.motionX *= 0.20000000298023224D;
this.motionZ *= 0.20000000298023224D;
@@ -944,7 +829,7 @@
@@ -946,7 +831,7 @@
par1Entity.motionX *= 0.949999988079071D;
par1Entity.motionZ *= 0.949999988079071D;
}
@ -514,7 +516,7 @@
{
par1Entity.motionX *= 0.20000000298023224D;
par1Entity.motionZ *= 0.20000000298023224D;
@@ -979,7 +864,7 @@
@@ -981,7 +866,7 @@
*/
public int getSizeInventory()
{
@ -523,7 +525,7 @@
}
/**
@@ -1081,7 +966,12 @@
@@ -1084,7 +969,12 @@
*/
public boolean interact(EntityPlayer par1EntityPlayer)
{
@ -537,7 +539,7 @@
{
if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != par1EntityPlayer)
{
@@ -1093,14 +983,14 @@
@@ -1096,14 +986,14 @@
par1EntityPlayer.mountEntity(this);
}
}
@ -554,7 +556,7 @@
{
ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem();
@@ -1159,7 +1049,7 @@
@@ -1162,7 +1052,7 @@
/**
* Is this minecart powered (Fuel > 0)
*/
@ -563,7 +565,7 @@
{
return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0;
}
@@ -1212,4 +1102,348 @@
@@ -1215,4 +1105,348 @@
{
return this.dataWatcher.getWatchableObjectInt(18);
}

View File

@ -9,7 +9,7 @@
public abstract class EntityPlayer extends EntityLiving
{
/** Inventory of the player */
@@ -206,6 +208,7 @@
@@ -210,6 +212,7 @@
}
else
{
@ -17,11 +17,11 @@
if (this.itemInUseCount <= 25 && this.itemInUseCount % 4 == 0)
{
this.func_35201_a(var1, 5);
@@ -605,7 +608,16 @@
@@ -609,7 +612,16 @@
public EntityItem func_48152_as()
{
- return this.func_48151_a(this.inventory.decrStackSize(this.inventory.currentItem, 1), false);
- return this.dropPlayerItemWithRandomChoice(this.inventory.decrStackSize(this.inventory.currentItem, 1), false);
+ ItemStack stack = inventory.getCurrentItem();
+ if (stack == null)
+ {
@ -29,13 +29,13 @@
+ }
+ if (stack.getItem().onDroppedByPlayer(stack, this))
+ {
+ return func_48151_a(inventory.decrStackSize(inventory.currentItem, 1), false);
+ return dropPlayerItemWithRandomChoice(inventory.decrStackSize(inventory.currentItem, 1), false);
+ }
+ return null;
}
public EntityItem func_48153_a(ItemStack par1ItemStack)
@@ -664,14 +676,22 @@
/**
@@ -674,14 +686,22 @@
/**
* Returns how strong the player is against the specified block at this moment
@ -60,7 +60,7 @@
{
var3 = var2 + (float)(var4 * var4 + 1);
}
@@ -960,7 +980,11 @@
@@ -973,7 +993,11 @@
par2 = 1 + par2 >> 1;
}
@ -73,7 +73,7 @@
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
this.addExhaustion(par1DamageSource.getHungerDamage());
this.health -= par2;
@@ -1021,7 +1045,9 @@
@@ -1034,7 +1058,9 @@
*/
public void destroyCurrentEquippedItem()
{
@ -83,7 +83,7 @@
}
/**
@@ -1050,6 +1076,11 @@
@@ -1063,6 +1089,11 @@
*/
public void attackTargetEntityWithCurrentItem(Entity par1Entity)
{
@ -95,7 +95,7 @@
if (par1Entity.canAttackWithItem())
{
int var2 = this.inventory.getDamageVsEntity(par1Entity);
@@ -1192,6 +1223,12 @@
@@ -1205,6 +1236,12 @@
*/
public EnumStatus sleepInBedAt(int par1, int par2, int par3)
{
@ -108,7 +108,7 @@
if (!this.worldObj.isRemote)
{
if (this.isPlayerSleeping() || !this.isEntityAlive())
@@ -1674,6 +1711,7 @@
@@ -1687,6 +1724,7 @@
return 101;
}
}
@ -116,7 +116,7 @@
}
return var3;
@@ -1841,4 +1879,30 @@
@@ -1857,4 +1895,30 @@
{
return !this.capabilities.isFlying;
}

View File

@ -8,8 +8,8 @@
+
public class Explosion
{
public boolean isFlaming = false;
@@ -71,7 +73,15 @@
/** whether or not the explosion sets fire to blocks around it */
@@ -72,7 +74,15 @@
if (var25 > 0)
{

View File

@ -7,7 +7,7 @@
import java.util.List;
import java.util.Random;
@@ -188,7 +189,10 @@
@@ -196,7 +197,10 @@
/** full name of item from language file */
private String itemName;
@ -19,7 +19,7 @@
protected Item(int par1)
{
this.shiftedIndex = 256 + par1;
@@ -542,7 +546,7 @@
@@ -559,7 +563,7 @@
float var17 = MathHelper.sin(-var5 * 0.017453292F);
float var18 = var15 * var16;
float var20 = var14 * var16;
@ -28,7 +28,7 @@
Vec3D var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21);
MovingObjectPosition var24 = par1World.rayTraceBlocks_do_do(var13, var23, par3, !par3);
return var24;
@@ -570,4 +574,149 @@
@@ -587,4 +591,149 @@
{
StatList.initStats();
}

View File

@ -20,7 +20,7 @@
boolean var5 = par3EntityPlayer.capabilities.depleteBuckets || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0;
if (var5 || par3EntityPlayer.inventory.hasItem(Item.arrow.shiftedIndex))
@@ -97,6 +104,12 @@
@@ -103,6 +110,12 @@
*/
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
{

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/src/ItemTool.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/ItemTool.java 0000-00-00 00:00:00.000000000 -0000
@@ -1,11 +1,13 @@
@@ -1,13 +1,15 @@
package net.minecraft.src;
+import net.minecraft.src.forge.ForgeHooks;
@ -10,13 +10,15 @@
/** Array of blocks the tool has extra effect against. */
private Block[] blocksEffectiveAgainst;
- protected float efficiencyOnProperMaterial = 4.0F;
- private int damageVsEntity;
+ public float efficiencyOnProperMaterial = 4.0F;
/** Damage versus entities. */
- private int damageVsEntity;
+ public int damageVsEntity;
/** The material this tool is made from. */
protected EnumToolMaterial toolMaterial;
@@ -77,4 +79,15 @@
@@ -79,4 +81,15 @@
{
return this.toolMaterial.getEnchantability();
}

View File

@ -50,7 +50,7 @@
}
public void handlePickupSpawn(Packet21PickupSpawn par1Packet21PickupSpawn)
@@ -674,7 +703,19 @@
@@ -677,7 +706,19 @@
}
else if (par1Packet2Handshake.username.equals("-"))
{
@ -71,7 +71,7 @@
}
else
{
@@ -687,7 +728,19 @@
@@ -690,7 +731,19 @@
if (var6.equalsIgnoreCase("ok"))
{
@ -92,7 +92,7 @@
}
else
{
@@ -1122,4 +1175,44 @@
@@ -1143,4 +1196,44 @@
{
this.addToSendQueue(new Packet0KeepAlive(par1Packet0KeepAlive.randomId));
}

View File

@ -17,7 +17,7 @@
}
}
@@ -427,4 +430,14 @@
@@ -430,4 +433,14 @@
{
return par0NetworkManager.writeThread;
}

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft/net/minecraft/src/TileEntity.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft/net/minecraft/src/TileEntity.java 0000-00-00 00:00:00.000000000 -0000
@@ -207,4 +207,13 @@
@@ -216,4 +216,13 @@
addMapping(TileEntityEnchantmentTable.class, "EnchantTable");
addMapping(TileEntityEndPortal.class, "Airportal");
}

View File

@ -11,7 +11,7 @@
{
/** The itemstacks currently placed in the slots of the brewing stand */
private ItemStack[] brewingItemStacks = new ItemStack[4];
@@ -321,4 +323,16 @@
@@ -322,4 +324,16 @@
return var1;
}

View File

@ -10,7 +10,7 @@
{
/**
* The ItemStacks that hold the items currently being used in the furnace
@@ -278,8 +280,12 @@
@@ -279,8 +281,12 @@
}
else
{
@ -25,7 +25,7 @@
}
}
@@ -290,13 +296,13 @@
@@ -291,13 +297,13 @@
{
if (this.canSmelt())
{
@ -41,7 +41,7 @@
{
this.furnaceItemStacks[2].stackSize += var1.stackSize;
}
@@ -321,7 +327,7 @@
@@ -322,7 +328,7 @@
* Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't
* fuel
*/
@ -50,7 +50,7 @@
{
if (par1ItemStack == null)
{
@@ -345,4 +351,18 @@
@@ -346,4 +352,18 @@
public void openChest() {}
public void closeChest() {}

View File

@ -9,7 +9,7 @@
public class World implements IBlockAccess
{
/**
@@ -67,7 +69,7 @@
@@ -79,7 +81,7 @@
* Contains a timestamp from when the World object was created. Is used in the session.lock file
*/
private long lockTimestamp;
@ -18,7 +18,7 @@
/** Option > Difficulty setting (0 - 3) */
public int difficultySetting;
@@ -539,7 +541,8 @@
@@ -556,7 +558,8 @@
*/
public boolean isAirBlock(int par1, int par2, int par3)
{
@ -28,7 +28,7 @@
}
/**
@@ -2037,7 +2040,7 @@
@@ -2063,7 +2066,7 @@
if (var7 != null)
{
@ -37,7 +37,7 @@
}
}
}
@@ -2067,18 +2070,18 @@
@@ -2093,18 +2096,18 @@
{
this.loadedTileEntityList.add(var8);
}
@ -60,7 +60,7 @@
}
}
@@ -2091,13 +2094,13 @@
@@ -2117,13 +2120,13 @@
public void addTileEntity(Collection par1Collection)
{
@ -80,7 +80,7 @@
}
}
@@ -2296,7 +2299,14 @@
@@ -2322,7 +2325,14 @@
if (var11 == Block.fire.blockID || var11 == Block.lavaMoving.blockID || var11 == Block.lavaStill.blockID)
{
return true;
@ -96,7 +96,7 @@
}
}
}
@@ -2597,25 +2607,19 @@
@@ -2626,25 +2636,19 @@
*/
public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity)
{
@ -134,7 +134,7 @@
}
}
@@ -2624,27 +2628,10 @@
@@ -2653,27 +2657,10 @@
*/
public void removeBlockTileEntity(int par1, int par2, int par3)
{
@ -165,7 +165,7 @@
}
}
@@ -2670,7 +2657,8 @@
@@ -2699,7 +2686,8 @@
*/
public boolean isBlockNormalCube(int par1, int par2, int par3)
{
@ -175,7 +175,7 @@
}
/**
@@ -2948,6 +2936,7 @@
@@ -2980,6 +2968,7 @@
}
}
}
@ -183,7 +183,7 @@
Profiler.endSection();
@@ -3263,7 +3252,7 @@
@@ -3302,7 +3291,7 @@
private int computeBlockLightValue(int par1, int par2, int par3, int par4, int par5, int par6)
{
@ -192,7 +192,7 @@
int var8 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6;
int var9 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6;
int var10 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6;
@@ -3789,7 +3778,10 @@
@@ -3834,7 +3823,10 @@
{
var8 = null;
}
@ -204,7 +204,7 @@
return par1 > 0 && var8 == null && var9.canPlaceBlockOnSide(this, par2, par3, par4, par6);
}
}
@@ -4381,4 +4373,39 @@
@@ -4435,4 +4427,39 @@
{
return this.worldInfo.getTerrainType() == WorldType.field_48636_c ? 0.0D : 63.0D;
}

View File

@ -9,16 +9,16 @@
public class Block
{
public static final StepSound soundPowderFootstep = new StepSound("stone", 1.0F, 1.0F);
@@ -396,7 +398,7 @@
@@ -446,7 +448,7 @@
public boolean func_48124_n()
{
- return this.field_48128_bU;
- return this.isBlockContainer;
+ return hasTileEntity(0);
}
/**
@@ -535,12 +537,16 @@
@@ -585,12 +587,16 @@
return this.blockID;
}
@ -37,7 +37,7 @@
}
/**
@@ -559,17 +565,13 @@
@@ -609,17 +615,13 @@
if (!par1World.isRemote)
{
int var8 = this.quantityDroppedWithBonus(par7, par1World.rand);
@ -59,16 +59,16 @@
}
}
}
@@ -849,7 +851,7 @@
@@ -902,7 +904,7 @@
par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1);
par2EntityPlayer.addExhaustion(0.025F);
- if (this.renderAsNormalBlock() && !this.field_48128_bU && EnchantmentHelper.getSilkTouchModifier(par2EntityPlayer.inventory))
- if (this.renderAsNormalBlock() && !this.isBlockContainer && EnchantmentHelper.getSilkTouchModifier(par2EntityPlayer.inventory))
+ if (this.renderAsNormalBlock() && !hasTileEntity(par6) && EnchantmentHelper.getSilkTouchModifier(par2EntityPlayer.inventory))
{
ItemStack var8 = this.createStackedBlock(par6);
@@ -951,6 +953,362 @@
@@ -1010,6 +1012,362 @@
*/
public void onFallenUpon(World par1World, int par2, int par3, int par4, Entity par5Entity, float par6) {}
@ -367,7 +367,7 @@
+ */
+ public boolean hasTileEntity(int metadata)
+ {
+ return field_48128_bU;
+ return isBlockContainer;
+ }
+
+ /**

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft_server/net/minecraft/src/BlockDoor.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/BlockDoor.java 0000-00-00 00:00:00.000000000 -0000
@@ -164,7 +164,7 @@
@@ -167,7 +167,7 @@
{
if (this.blockMaterial == Material.iron)
{
@ -9,7 +9,7 @@
}
else
{
@@ -243,7 +243,7 @@
@@ -249,7 +249,7 @@
var7 = true;
}
@ -18,7 +18,7 @@
{
par1World.setBlockWithNotify(par2, par3, par4, 0);
var7 = true;
@@ -296,7 +296,7 @@
@@ -302,7 +302,7 @@
*/
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft_server/net/minecraft/src/BlockPistonBase.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/BlockPistonBase.java 0000-00-00 00:00:00.000000000 -0000
@@ -355,7 +355,7 @@
@@ -359,7 +359,7 @@
return false;
}

View File

@ -1,11 +1,9 @@
--- ../src_base/minecraft_server/net/minecraft/src/BlockRail.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/BlockRail.java 0000-00-00 00:00:00.000000000 -0000
@@ -5,16 +5,29 @@
public class BlockRail extends Block
{
@@ -8,13 +8,26 @@
private final boolean isPowered;
+
+ /**
/**
+ * 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
@ -17,7 +15,11 @@
+ {
+ renderType = value;
+ }
+
+ /**
* Returns true if the block at the coordinates of world passed is a valid rail block (current is rail, powered or
* detector).
*/
public static final boolean isRailBlockAt(World par0World, int par1, int par2, int par3)
{
int var4 = par0World.getBlockId(par1, par2, par3);
@ -25,6 +27,9 @@
+ return Block.blocksList[var4] instanceof BlockRail;
}
/**
@@ -22,7 +35,7 @@
*/
public static final boolean isRailBlock(int par0)
{
- return par0 == Block.rail.blockID || par0 == Block.railPowered.blockID || par0 == Block.railDetector.blockID;
@ -32,7 +37,7 @@
}
protected BlockRail(int par1, int par2, boolean par3)
@@ -107,7 +120,7 @@
@@ -118,7 +131,7 @@
*/
public int getRenderType()
{
@ -41,7 +46,7 @@
}
/**
@@ -123,7 +136,7 @@
@@ -134,7 +147,7 @@
*/
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{
@ -50,7 +55,7 @@
}
/**
@@ -160,27 +173,27 @@
@@ -171,27 +184,27 @@
boolean var8 = false;
@ -83,13 +88,13 @@
{
var8 = true;
}
@@ -383,8 +396,121 @@
return 0;
@@ -395,10 +408,120 @@
}
+ /**
/**
- * Return true if the blocks passed is a power related rail.
+ * This function is no longer called by Minecraft
+ */
*/
+ @Deprecated
static boolean isPoweredBlockRail(BlockRail par0BlockRail)
{

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft_server/net/minecraft/src/BlockRedstoneRepeater.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/BlockRedstoneRepeater.java 0000-00-00 00:00:00.000000000 -0000
@@ -28,7 +28,7 @@
@@ -33,7 +33,7 @@
*/
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{
@ -9,7 +9,7 @@
}
/**
@@ -36,7 +36,7 @@
@@ -41,7 +41,7 @@
*/
public boolean canBlockStay(World par1World, int par2, int par3, int par4)
{

View File

@ -13,7 +13,7 @@
{
public BlockVine(int par1)
{
@@ -404,14 +407,26 @@
@@ -410,14 +413,26 @@
*/
public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
{

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft_server/net/minecraft/src/Chunk.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/Chunk.java 0000-00-00 00:00:00.000000000 -0000
@@ -475,7 +475,7 @@
@@ -511,7 +511,7 @@
{
Block.blocksList[var8].onBlockRemoval(this.worldObj, var11, par2, var12);
}
@ -9,7 +9,7 @@
{
this.worldObj.removeBlockTileEntity(var11, par2, var12);
}
@@ -513,31 +513,23 @@
@@ -549,31 +549,23 @@
Block.blocksList[par4].onBlockAdded(this.worldObj, var11, par2, var12);
}
@ -44,16 +44,16 @@
this.isModified = true;
return true;
@@ -569,7 +561,7 @@
@@ -605,7 +597,7 @@
var5.func_48585_b(par1, par2 & 15, par3, par4);
int var7 = var5.func_48591_a(par1, par2 & 15, par3);
int var7 = var5.getExtBlockID(par1, par2 & 15, par3);
- if (var7 > 0 && Block.blocksList[var7] instanceof BlockContainer)
+ if (var7 > 0 && Block.blocksList[var7] != null && Block.blocksList[var7].hasTileEntity(var5.func_48598_b(par1, par3 & 15, par3)))
{
TileEntity var8 = this.getChunkBlockTileEntity(par1, par2, par3);
@@ -736,33 +728,30 @@
@@ -772,33 +764,30 @@
ChunkPosition var4 = new ChunkPosition(par1, par2, par3);
TileEntity var5 = (TileEntity)this.chunkTileEntityMap.get(var4);
@ -97,7 +97,7 @@
}
/**
@@ -777,7 +766,7 @@
@@ -813,7 +802,7 @@
if (this.isChunkLoaded)
{
@ -106,7 +106,7 @@
}
}
@@ -792,8 +781,14 @@
@@ -828,8 +817,14 @@
par4TileEntity.yCoord = par2;
par4TileEntity.zCoord = this.zPosition * 16 + par3;
@ -122,7 +122,7 @@
par4TileEntity.validate();
this.chunkTileEntityMap.put(var5, par4TileEntity);
}
@@ -1179,4 +1174,18 @@
@@ -1227,4 +1222,18 @@
}
}
}

View File

@ -8,8 +8,8 @@
+
public class ChunkProvider implements IChunkProvider
{
private Set droppedChunksSet = new HashSet();
@@ -42,6 +44,11 @@
/** A set of dropped chunks. Currently not used in single player. */
@@ -51,6 +53,11 @@
*/
public void dropChunk(int par1, int par2)
{

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft_server/net/minecraft/src/Enchantment.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/Enchantment.java 0000-00-00 00:00:00.000000000 -0000
@@ -154,4 +154,14 @@
@@ -175,4 +175,14 @@
this.name = par1Str;
return this;
}

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft_server/net/minecraft/src/EnchantmentHelper.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/EnchantmentHelper.java 0000-00-00 00:00:00.000000000 -0000
@@ -348,7 +348,7 @@
@@ -354,7 +354,7 @@
{
Enchantment var7 = var4[var6];

View File

@ -1,7 +1,7 @@
--- ../src_base/minecraft_server/net/minecraft/src/Entity.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/Entity.java 0000-00-00 00:00:00.000000000 -0000
@@ -140,6 +140,9 @@
public boolean ignoreFrustrumCheck;
@@ -171,6 +171,9 @@
public boolean ignoreFrustumCheck;
public boolean isAirBorne;
+ /** Forge: Used to store custom data for each entity. */
@ -10,7 +10,7 @@
public Entity(World par1World)
{
this.entityId = nextEntityID++;
@@ -181,6 +184,20 @@
@@ -212,6 +215,20 @@
protected abstract void entityInit();
@ -31,7 +31,7 @@
public DataWatcher getDataWatcher()
{
return this.dataWatcher;
@@ -1128,6 +1145,10 @@
@@ -1188,6 +1205,10 @@
par1NBTTagCompound.setShort("Fire", (short)this.fire);
par1NBTTagCompound.setShort("Air", (short)this.getAir());
par1NBTTagCompound.setBoolean("OnGround", this.onGround);
@ -42,7 +42,7 @@
this.writeEntityToNBT(par1NBTTagCompound);
}
@@ -1169,6 +1190,10 @@
@@ -1229,6 +1250,10 @@
this.onGround = par1NBTTagCompound.getBoolean("OnGround");
this.setPosition(this.posX, this.posY, this.posZ);
this.setRotation(this.rotationYaw, this.rotationPitch);

View File

@ -8,7 +8,7 @@
public class EntityItem extends Entity
{
/** The item stack of this EntityItem. */
@@ -171,6 +173,20 @@
@@ -175,6 +177,20 @@
if (!this.worldObj.isRemote)
{
int var2 = this.item.stackSize;
@ -29,7 +29,7 @@
if (this.delayBeforeCanPickup == 0 && par1EntityPlayer.inventory.addItemStackToInventory(this.item))
{
@@ -194,6 +210,7 @@
@@ -198,6 +214,7 @@
par1EntityPlayer.triggerAchievement(AchievementList.blazeRod);
}

View File

@ -9,7 +9,7 @@
/** Number of ticks since this EntityLiving last produced its sound */
private int livingSoundTime;
@@ -1235,7 +1235,7 @@
@@ -1288,7 +1288,7 @@
int var2 = MathHelper.floor_double(this.boundingBox.minY);
int var3 = MathHelper.floor_double(this.posZ);
int var4 = this.worldObj.getBlockId(var1, var2, var3);

View File

@ -81,9 +81,9 @@
+ minecartType = type;
}
protected boolean canTriggerWalking()
@@ -49,6 +86,10 @@
/**
@@ -57,6 +94,10 @@
*/
public AxisAlignedBB getCollisionBox(Entity par1Entity)
{
+ if (getCollisionHandler() != null)
@ -93,7 +93,7 @@
return par1Entity.boundingBox;
}
@@ -57,12 +98,16 @@
@@ -65,6 +106,10 @@
*/
public AxisAlignedBB getBoundingBox()
{
@ -104,6 +104,8 @@
return null;
}
@@ -73,7 +118,7 @@
*/
public boolean canBePushed()
{
- return true;
@ -111,7 +113,7 @@
}
public EntityMinecart(World par1World, double par2, double par4, double par6, int par8)
@@ -106,48 +151,8 @@
@@ -117,48 +162,8 @@
}
this.setEntityDead();
@ -162,7 +164,7 @@
}
return true;
@@ -216,7 +221,7 @@
@@ -230,7 +235,7 @@
this.func_41018_e_(this.func_41020_o() - 1);
}
@ -171,7 +173,7 @@
{
this.worldObj.spawnParticle("largesmoke", this.posX, this.posY + 0.8D, this.posZ, 0.0D, 0.0D, 0.0D);
}
@@ -271,25 +276,20 @@
@@ -285,25 +290,20 @@
double var6 = 0.0078125D;
int var8 = this.worldObj.getBlockId(var1, var2, var3);
@ -200,7 +202,7 @@
if (var10 >= 2 && var10 <= 5)
{
this.posY = (double)(var2 + 1);
@@ -332,7 +332,7 @@
@@ -346,7 +346,7 @@
this.motionZ = var22 * var16 / var18;
double var24;
@ -209,7 +211,7 @@
{
var24 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
@@ -382,36 +382,8 @@
@@ -396,36 +396,8 @@
this.posX = var26 + var14 * var24;
this.posZ = var28 + var16 * var24;
this.setPosition(this.posX, this.posY + (double)this.yOffset, this.posZ);
@ -248,7 +250,7 @@
if (var13[0][1] != 0 && MathHelper.floor_double(this.posX) - var1 == var13[0][0] && MathHelper.floor_double(this.posZ) - var3 == var13[0][2])
{
@@ -422,41 +394,7 @@
@@ -436,41 +408,7 @@
this.setPosition(this.posX, this.posY + (double)var13[1][1], this.posZ);
}
@ -291,24 +293,20 @@
Vec3D var52 = this.func_182_g(this.posX, this.posY, this.posZ);
@@ -485,30 +423,15 @@
}
@@ -500,29 +438,14 @@
double var41;
-
- if (this.minecartType == 2)
+
+ updatePushForces();
+
+ if (shouldDoRailFunctions())
{
- {
- var41 = (double)MathHelper.sqrt_double(this.pushX * this.pushX + this.pushZ * this.pushZ);
-
- if (var41 > 0.01D && this.motionX * this.motionX + this.motionZ * this.motionZ > 0.001D)
- if (var41 > 0.01D && this.motionX * this.motionX + this.motionZ * this.motionZ > 0.0010D)
- {
- this.pushX /= var41;
- this.pushZ /= var41;
-
+ updatePushForces();
- if (this.pushX * this.motionX + this.pushZ * this.motionZ < 0.0D)
- {
- this.pushX = 0.0D;
@ -320,6 +318,8 @@
- this.pushZ = this.motionZ;
- }
- }
+ if (shouldDoRailFunctions())
+ {
+ ((BlockRail)Block.blocksList[var8]).onMinecartPass(worldObj, this, var1, var2, var3);
}
@ -328,7 +328,7 @@
{
var41 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
@@ -544,41 +467,7 @@
@@ -558,41 +481,7 @@
}
else
{
@ -371,7 +371,7 @@
}
this.rotationPitch = 0.0F;
@@ -614,7 +503,18 @@
@@ -628,7 +517,18 @@
}
this.setRotation(this.rotationYaw, this.rotationPitch);
@ -391,7 +391,7 @@
if (var15 != null && var15.size() > 0)
{
@@ -639,17 +539,8 @@
@@ -653,17 +553,8 @@
this.riddenByEntity = null;
}
@ -411,7 +411,7 @@
}
}
@@ -668,14 +559,9 @@
@@ -682,14 +573,9 @@
if (BlockRail.isRailBlock(var10))
{
@ -427,7 +427,7 @@
if (var11 >= 2 && var11 <= 5)
{
par3 = (double)(var8 + 1);
@@ -740,13 +626,13 @@
@@ -754,13 +640,13 @@
{
par1NBTTagCompound.setInteger("Type", this.minecartType);
@ -444,7 +444,7 @@
{
NBTTagList var2 = new NBTTagList();
@@ -772,13 +658,13 @@
@@ -786,13 +672,13 @@
{
this.minecartType = par1NBTTagCompound.getInteger("Type");
@ -461,7 +461,7 @@
{
NBTTagList var2 = par1NBTTagCompound.getTagList("Items");
this.cargoItems = new ItemStack[this.getSizeInventory()];
@@ -801,11 +687,18 @@
@@ -815,11 +701,18 @@
*/
public void applyEntityCollision(Entity par1Entity)
{
@ -481,7 +481,7 @@
{
par1Entity.mountEntity(this);
}
@@ -851,7 +744,7 @@
@@ -865,7 +758,7 @@
double var18 = par1Entity.motionX + this.motionX;
double var20 = par1Entity.motionZ + this.motionZ;
@ -490,7 +490,7 @@
{
this.motionX *= 0.20000000298023224D;
this.motionZ *= 0.20000000298023224D;
@@ -859,7 +752,7 @@
@@ -873,7 +766,7 @@
par1Entity.motionX *= 0.949999988079071D;
par1Entity.motionZ *= 0.949999988079071D;
}
@ -499,8 +499,8 @@
{
par1Entity.motionX *= 0.20000000298023224D;
par1Entity.motionZ *= 0.20000000298023224D;
@@ -891,7 +784,7 @@
@@ -908,7 +801,7 @@
*/
public int getSizeInventory()
{
- return 27;
@ -508,7 +508,7 @@
}
/**
@@ -993,7 +886,12 @@
@@ -1011,7 +904,12 @@
*/
public boolean interact(EntityPlayer par1EntityPlayer)
{
@ -522,7 +522,7 @@
{
if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != par1EntityPlayer)
{
@@ -1005,14 +903,14 @@
@@ -1023,14 +921,14 @@
par1EntityPlayer.mountEntity(this);
}
}
@ -539,7 +539,7 @@
{
ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem();
@@ -1044,7 +942,7 @@
@@ -1062,7 +960,7 @@
/**
* Is this minecart powered (Fuel > 0)
*/
@ -548,7 +548,7 @@
{
return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0;
}
@@ -1097,4 +995,348 @@
@@ -1115,4 +1013,348 @@
{
return this.dataWatcher.getWatchableObjectInt(18);
}

View File

@ -11,7 +11,7 @@
public abstract class EntityPlayer extends EntityLiving
{
/** Inventory of the player */
@@ -158,6 +162,7 @@
@@ -172,6 +176,7 @@
}
else
{
@ -19,7 +19,7 @@
if (this.itemInUseCount <= 25 && this.itemInUseCount % 4 == 0)
{
this.func_35208_b(var1, 5);
@@ -341,6 +346,10 @@
@@ -355,6 +360,10 @@
*/
protected void closeScreen()
{
@ -30,11 +30,11 @@
this.craftingInventory = this.inventorySlots;
}
@@ -514,7 +523,16 @@
@@ -535,7 +544,16 @@
public EntityItem func_48347_R()
{
- return this.func_48349_a(this.inventory.decrStackSize(this.inventory.currentItem, 1), false);
- return this.dropPlayerItemWithRandomChoice(this.inventory.decrStackSize(this.inventory.currentItem, 1), false);
+ ItemStack stack = inventory.getCurrentItem();
+ if (stack == null)
+ {
@ -42,13 +42,13 @@
+ }
+ if (stack.getItem().onDroppedByPlayer(stack, this))
+ {
+ return func_48349_a(inventory.decrStackSize(inventory.currentItem, 1), false);
+ return dropPlayerItemWithRandomChoice(inventory.decrStackSize(inventory.currentItem, 1), false);
+ }
+ return null;
}
public EntityItem func_48348_b(ItemStack par1ItemStack)
@@ -573,10 +591,18 @@
/**
@@ -600,10 +618,18 @@
/**
* Returns how strong the player is against the specified block at this moment
@ -68,7 +68,7 @@
float var3 = var2;
int var4 = EnchantmentHelper.getEfficiencyModifier(this.inventory);
@@ -868,7 +894,11 @@
@@ -899,7 +925,11 @@
par2 = 1 + par2 >> 1;
}
@ -81,7 +81,7 @@
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
this.addExhaustion(par1DamageSource.getHungerDamage());
this.health -= par2;
@@ -926,7 +956,9 @@
@@ -960,7 +990,9 @@
*/
public void destroyCurrentEquippedItem()
{
@ -91,7 +91,7 @@
}
/**
@@ -955,6 +987,12 @@
@@ -989,6 +1021,12 @@
*/
public void attackTargetEntityWithCurrentItem(Entity par1Entity)
{
@ -101,10 +101,10 @@
+ return;
+ }
+
if (par1Entity.func_48313_k_())
if (par1Entity.canAttackWithItem())
{
int var2 = this.inventory.getDamageVsEntity(par1Entity);
@@ -1093,6 +1131,12 @@
@@ -1127,6 +1165,12 @@
*/
public EnumStatus sleepInBedAt(int par1, int par2, int par3)
{
@ -117,7 +117,7 @@
if (!this.worldObj.isRemote)
{
if (this.isPlayerSleeping() || !this.isEntityAlive())
@@ -1643,4 +1687,16 @@
@@ -1708,4 +1752,16 @@
{
return !this.capabilities.isFlying;
}

View File

@ -11,7 +11,7 @@
public class EntityPlayerMP extends EntityPlayer implements ICrafting
{
@@ -548,6 +552,7 @@
@@ -551,6 +555,7 @@
public void displayWorkbenchGUI(int par1, int par2, int par3)
{
this.getNextWidowId();
@ -19,7 +19,7 @@
this.playerNetServerHandler.sendPacket(new Packet100OpenWindow(this.currentWindowId, 1, "Crafting", 9));
this.craftingInventory = new ContainerWorkbench(this.inventory, this.worldObj, par1, par2, par3);
this.craftingInventory.windowId = this.currentWindowId;
@@ -557,6 +562,7 @@
@@ -560,6 +565,7 @@
public void displayGUIEnchantment(int par1, int par2, int par3)
{
this.getNextWidowId();
@ -27,7 +27,7 @@
this.playerNetServerHandler.sendPacket(new Packet100OpenWindow(this.currentWindowId, 4, "Enchanting", 9));
this.craftingInventory = new ContainerEnchantment(this.inventory, this.worldObj, par1, par2, par3);
this.craftingInventory.windowId = this.currentWindowId;
@@ -569,6 +575,7 @@
@@ -572,6 +578,7 @@
public void displayGUIChest(IInventory par1IInventory)
{
this.getNextWidowId();
@ -35,7 +35,7 @@
this.playerNetServerHandler.sendPacket(new Packet100OpenWindow(this.currentWindowId, 0, par1IInventory.getInvName(), par1IInventory.getSizeInventory()));
this.craftingInventory = new ContainerChest(this.inventory, par1IInventory);
this.craftingInventory.windowId = this.currentWindowId;
@@ -581,6 +588,7 @@
@@ -584,6 +591,7 @@
public void displayGUIFurnace(TileEntityFurnace par1TileEntityFurnace)
{
this.getNextWidowId();
@ -43,7 +43,7 @@
this.playerNetServerHandler.sendPacket(new Packet100OpenWindow(this.currentWindowId, 2, par1TileEntityFurnace.getInvName(), par1TileEntityFurnace.getSizeInventory()));
this.craftingInventory = new ContainerFurnace(this.inventory, par1TileEntityFurnace);
this.craftingInventory.windowId = this.currentWindowId;
@@ -593,6 +601,7 @@
@@ -596,6 +604,7 @@
public void displayGUIDispenser(TileEntityDispenser par1TileEntityDispenser)
{
this.getNextWidowId();
@ -51,7 +51,7 @@
this.playerNetServerHandler.sendPacket(new Packet100OpenWindow(this.currentWindowId, 3, par1TileEntityDispenser.getInvName(), par1TileEntityDispenser.getSizeInventory()));
this.craftingInventory = new ContainerDispenser(this.inventory, par1TileEntityDispenser);
this.craftingInventory.windowId = this.currentWindowId;
@@ -602,6 +611,7 @@
@@ -608,6 +617,7 @@
public void displayGUIBrewingStand(TileEntityBrewingStand par1TileEntityBrewingStand)
{
this.getNextWidowId();
@ -59,7 +59,7 @@
this.playerNetServerHandler.sendPacket(new Packet100OpenWindow(this.currentWindowId, 5, par1TileEntityBrewingStand.getInvName(), par1TileEntityBrewingStand.getSizeInventory()));
this.craftingInventory = new ContainerBrewingStand(this.inventory, par1TileEntityBrewingStand);
this.craftingInventory.windowId = this.currentWindowId;
@@ -785,4 +795,38 @@
@@ -794,4 +804,38 @@
EntityTracker var2 = this.mcServer.getEntityTracker(this.dimension);
var2.sendPacketToTrackedPlayersAndTrackedEntity(this, new Packet18Animation(par1Entity, 7));
}

View File

@ -11,9 +11,9 @@
+
+public class EntitySheep extends EntityAnimal implements IShearable
{
public static final float[][] fleeceColorTable = new float[][] {{1.0F, 1.0F, 1.0F}, {0.95F, 0.7F, 0.2F}, {0.9F, 0.5F, 0.85F}, {0.6F, 0.7F, 0.95F}, {0.9F, 0.9F, 0.2F}, {0.5F, 0.8F, 0.1F}, {0.95F, 0.7F, 0.8F}, {0.3F, 0.3F, 0.3F}, {0.6F, 0.6F, 0.6F}, {0.3F, 0.6F, 0.7F}, {0.7F, 0.4F, 0.9F}, {0.2F, 0.4F, 0.8F}, {0.5F, 0.4F, 0.3F}, {0.4F, 0.5F, 0.2F}, {0.8F, 0.3F, 0.3F}, {0.1F, 0.1F, 0.1F}};
@@ -94,27 +97,6 @@
/**
* Holds the RGB table of the sheep colors - in OpenGL glColor3f values - used to render the sheep colored fleece.
@@ -97,27 +100,6 @@
*/
public boolean interact(EntityPlayer par1EntityPlayer)
{
@ -41,7 +41,7 @@
return super.interact(par1EntityPlayer);
}
@@ -237,4 +219,23 @@
@@ -246,4 +228,23 @@
this.setGrowingAge(var1);
}
}

View File

@ -7,7 +7,7 @@
import java.util.Random;
public class Item
@@ -184,6 +185,9 @@
@@ -199,6 +200,9 @@
/** full name of item from language file */
private String itemName;
@ -17,7 +17,7 @@
protected Item(int par1)
{
@@ -468,6 +472,10 @@
@@ -500,6 +504,10 @@
float var18 = var15 * var16;
float var20 = var14 * var16;
double var21 = 5.0D;
@ -28,7 +28,7 @@
Vec3D var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21);
MovingObjectPosition var24 = par1World.rayTraceBlocks_do_do(var13, var23, par3, !par3);
return var24;
@@ -482,4 +490,149 @@
@@ -517,4 +525,149 @@
{
StatList.initStats();
}

View File

@ -8,8 +8,8 @@
public class ItemBow extends Item
{
public ItemBow(int par1)
@@ -11,6 +13,10 @@
@@ -14,6 +16,10 @@
*/
public void onPlayerStoppedUsing(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer, int par4)
{
+ if (ForgeHooks.onArrowLoose(par1ItemStack, par2World, par3EntityPlayer, getMaxItemUseDuration(par1ItemStack) - par4))
@ -19,7 +19,7 @@
boolean var5 = par3EntityPlayer.capabilities.depleteBuckets || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0;
if (var5 || par3EntityPlayer.inventory.hasItem(Item.arrow.shiftedIndex))
@@ -100,6 +106,12 @@
@@ -103,6 +109,12 @@
*/
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
{

View File

@ -18,7 +18,7 @@
/** The material this tool is made from. */
protected EnumToolMaterial toolMaterial;
@@ -61,4 +63,15 @@
@@ -71,4 +73,15 @@
{
return this.toolMaterial.getEnchantability();
}

View File

@ -55,7 +55,8 @@
}
}
@@ -954,4 +961,49 @@
@@ -960,4 +966,49 @@
>>>>>>> MCP Update. Fixed a few small bugs in the linux scripts.
{
return true;
}

View File

@ -10,7 +10,7 @@
public class NetworkManager
{
/** Synchronization object used for read and write threads. */
@@ -312,6 +315,8 @@
@@ -315,6 +318,8 @@
{
;
}
@ -19,7 +19,7 @@
}
}
@@ -456,4 +461,14 @@
@@ -462,4 +467,14 @@
{
return par0NetworkManager.writeThread;
}

View File

@ -9,7 +9,7 @@
{
/** Reference to the World object. */
private World worldObj;
@@ -14,6 +14,7 @@
@@ -18,6 +18,7 @@
private List connectedTracks;
final BlockRail rail;
@ -17,7 +17,7 @@
public RailLogic(BlockRail par1BlockRail, World par2World, int par3, int par4, int par5)
{
@@ -24,17 +25,11 @@
@@ -28,17 +29,11 @@
this.trackY = par4;
this.trackZ = par5;
int var6 = par2World.getBlockId(par3, par4, par5);
@ -39,7 +39,7 @@
this.setConnections(var7);
}
@@ -251,7 +246,7 @@
@@ -258,7 +253,7 @@
}
}
@ -48,7 +48,7 @@
{
if (BlockRail.isRailBlockAt(this.worldObj, this.trackX, this.trackY + 1, this.trackZ - 1))
{
@@ -264,7 +259,7 @@
@@ -271,7 +266,7 @@
}
}
@ -57,7 +57,7 @@
{
if (BlockRail.isRailBlockAt(this.worldObj, this.trackX + 1, this.trackY + 1, this.trackZ))
{
@@ -415,7 +410,7 @@
@@ -422,7 +417,7 @@
}
}
@ -66,7 +66,7 @@
{
if (BlockRail.isRailBlockAt(this.worldObj, this.trackX, this.trackY + 1, this.trackZ - 1))
{
@@ -428,7 +423,7 @@
@@ -435,7 +430,7 @@
}
}
@ -75,7 +75,7 @@
{
if (BlockRail.isRailBlockAt(this.worldObj, this.trackX + 1, this.trackY + 1, this.trackZ))
{
@@ -478,7 +473,7 @@
@@ -485,7 +480,7 @@
/**
* get number of adjacent tracks
*/

View File

@ -8,7 +8,7 @@
public class SlotCrafting extends Slot
{
/** The craft matrix inventory linked to this result slot. */
@@ -89,6 +91,7 @@
@@ -91,6 +93,7 @@
}
ModLoader.takenFromCrafting(this.thePlayer, par1ItemStack, this.craftMatrix);

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft_server/net/minecraft/src/SpawnerAnimals.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/SpawnerAnimals.java 0000-00-00 00:00:00.000000000 -0000
@@ -190,7 +190,7 @@
@@ -202,7 +202,7 @@
else
{
int var5 = par1World.getBlockId(par2, par3 - 1, par4);

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft_server/net/minecraft/src/TileEntity.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/TileEntity.java 0000-00-00 00:00:00.000000000 -0000
@@ -197,4 +197,13 @@
@@ -200,4 +200,13 @@
addMapping(TileEntityEnchantmentTable.class, "EnchantTable");
addMapping(TileEntityEndPortal.class, "Airportal");
}

View File

@ -11,7 +11,7 @@
{
/** The itemstacks currently placed in the slots of the brewing stand */
private ItemStack[] brewingItemStacks = new ItemStack[4];
@@ -313,4 +315,16 @@
@@ -317,4 +319,16 @@
return var1;
}

View File

@ -10,7 +10,7 @@
{
/**
* The ItemStacks that hold the items currently being used in the furnace
@@ -245,8 +247,12 @@
@@ -249,8 +251,12 @@
}
else
{
@ -25,7 +25,7 @@
}
}
@@ -257,13 +263,13 @@
@@ -261,13 +267,13 @@
{
if (this.canSmelt())
{
@ -41,7 +41,7 @@
{
++this.furnaceItemStacks[2].stackSize;
}
@@ -281,7 +287,7 @@
@@ -285,7 +291,7 @@
* Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't
* fuel
*/
@ -50,7 +50,7 @@
{
if (par1ItemStack == null)
{
@@ -305,4 +311,18 @@
@@ -309,4 +315,18 @@
public void openChest() {}
public void closeChest() {}

View File

@ -9,7 +9,7 @@
public class World implements IBlockAccess
{
/**
@@ -66,7 +68,7 @@
@@ -79,7 +81,7 @@
* Contains a timestamp from when the World object was created. Is used in the session.lock file
*/
private long lockTimestamp = System.currentTimeMillis();
@ -18,7 +18,7 @@
/** Whether monsters are enabled or not. (1 = on, 0 = off) */
public int difficultySetting;
@@ -324,7 +326,8 @@
@@ -349,7 +351,8 @@
*/
public boolean isAirBlock(int par1, int par2, int par3)
{
@ -28,7 +28,7 @@
}
public boolean func_48084_h(int par1, int par2, int par3)
@@ -1549,7 +1552,7 @@
@@ -1595,7 +1598,7 @@
if (var7 != null)
{
@ -37,7 +37,7 @@
}
}
}
@@ -1579,14 +1582,16 @@
@@ -1625,14 +1628,16 @@
{
this.loadedTileEntityList.add(var8);
}
@ -56,7 +56,7 @@
}
}
@@ -1603,13 +1608,13 @@
@@ -1649,13 +1654,13 @@
public void addTileEntity(Collection par1Collection)
{
@ -76,7 +76,7 @@
}
}
@@ -1841,6 +1846,13 @@
@@ -1900,6 +1905,13 @@
if (var11 == Block.fire.blockID || var11 == Block.lavaMoving.blockID || var11 == Block.lavaStill.blockID)
{
return true;
@ -90,7 +90,7 @@
}
}
}
@@ -2121,25 +2133,21 @@
@@ -2183,25 +2195,21 @@
*/
public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity)
{
@ -129,7 +129,7 @@
}
}
@@ -2148,27 +2156,10 @@
@@ -2210,27 +2218,10 @@
*/
public void removeBlockTileEntity(int par1, int par2, int par3)
{
@ -160,7 +160,7 @@
}
}
@@ -2191,7 +2182,8 @@
@@ -2256,7 +2247,8 @@
*/
public boolean isBlockNormalCube(int par1, int par2, int par3)
{
@ -170,7 +170,7 @@
}
/**
@@ -2463,6 +2455,7 @@
@@ -2531,6 +2523,7 @@
}
}
}
@ -178,7 +178,7 @@
Profiler.endSection();
@@ -2785,7 +2778,7 @@
@@ -2853,7 +2846,7 @@
private int computeBlockLightValue(int par1, int par2, int par3, int par4, int par5, int par6)
{
@ -187,7 +187,7 @@
int var8 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6;
int var9 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6;
int var10 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6;
@@ -3267,6 +3260,11 @@
@@ -3339,6 +3332,11 @@
{
var8 = null;
}
@ -199,7 +199,7 @@
return par1 > 0 && var8 == null && var9.canPlaceBlockOnSide(this, par2, par3, par4, par6);
}
@@ -3735,4 +3733,38 @@
@@ -3846,4 +3844,38 @@
{
return this.getChunkProvider().findClosestStructure(this, par1Str, par2, par3, par4);
}

View File

@ -7,8 +7,8 @@
+
public abstract class WorldProvider
{
public World worldObj;
@@ -103,7 +105,7 @@
/** world object being used */
@@ -124,7 +126,7 @@
public static WorldProvider getProviderForDimension(int par0)
{
@ -17,7 +17,7 @@
}
/**
@@ -118,4 +120,36 @@
@@ -139,4 +141,36 @@
{
return this.terrainType == WorldType.field_48458_c ? 4 : 64;
}

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft_server/net/minecraft/src/WorldProviderEnd.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/WorldProviderEnd.java 0000-00-00 00:00:00.000000000 -0000
@@ -53,4 +53,22 @@
@@ -62,4 +62,22 @@
{
return 50;
}

View File

@ -1,6 +1,6 @@
--- ../src_base/minecraft_server/net/minecraft/src/WorldProviderHell.java 0000-00-00 00:00:00.000000000 -0000
+++ ../src_work/minecraft_server/net/minecraft/src/WorldProviderHell.java 0000-00-00 00:00:00.000000000 -0000
@@ -54,4 +54,28 @@
@@ -63,4 +63,28 @@
{
return false;
}

View File

@ -26,8 +26,8 @@
+ entityTracker = new EntityTracker(mcServer, par4);
}
public void updateEntityWithOptionalForce(Entity par1Entity, boolean par2)
@@ -68,14 +74,26 @@
/**
@@ -72,14 +78,26 @@
public List getTileEntityList(int par1, int par2, int par3, int par4, int par5, int par6)
{
ArrayList var7 = new ArrayList();

View File

@ -39,7 +39,6 @@ if [ ! -d src_base ] ; then
find . -name *.java -exec sed -i 's/\r//g' \{\} \;
cp ../forge/MLProp.java minecraft/net/minecraft/src/MLProp.java
cp ../forge/MLProp.java minecraft_server/net/minecraft/src/MLProp.java
patch -p2 -i ../forge/modLoaderMP.patch
popd > /dev/null

View File

@ -14,7 +14,7 @@ cd src_work
for i in `find ../src_work -type f`
do
ibase=${i##../src_work}
diff -u ../src_base$ibase $i -r --strip-trailing-cr --new-file | sed -e "1,2s/[0-9-]* [0-9:\.]* [+-][0-9]*\b/0000-00-00 00:00:00.000000000 -0000/" | tr -d \r > $fdir/patches$ibase.patch
diff -u ../src_base$ibase $i -r --strip-trailing-cr --new-file | sed -e "1,2s/[0-9-]* [0-9:\.]* [+-][0-9]*\b/0000-00-00 00:00:00.000000000 -0000/" | tr -d "\r" > $fdir/patches$ibase.patch
done
cd ..