-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit a3fa267
Showing
8 changed files
with
361 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
*.sh eol=lf | ||
*.bat eol=crlf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Block folders that belong to MCP | ||
jars/ | ||
logs/ | ||
reobf/ | ||
temp/ | ||
bin/ | ||
|
||
conf/ | ||
docs/ | ||
eclipse/ | ||
runtime/ | ||
notes.md | ||
|
||
# AnnoyanceFix related stuff | ||
src/minecraft_server | ||
src/minecraft/net/minecraft/client | ||
src/minecraft/net/minecraft/isom | ||
src/minecraft/net/minecraft/src/*.java | ||
!src/minecraft/net/minecraft/src/BlockFence.java | ||
!src/minecraft/net/minecraft/src/BlockStairs.java | ||
!src/minecraft/net/minecraft/src/mod_AnnoyanceFix.java | ||
!src/minecraft/net/minecraft/src/mod_AnnoyanceFix.java | ||
|
||
|
||
# Allow server.properties | ||
!jars/server.properties | ||
|
||
# Block compiled Python | ||
*.pyc | ||
|
||
# Block downloaded files | ||
runtime/bin/pypy* | ||
!runtime/bin/ | ||
|
||
# Block .idea folder | ||
.idea/ | ||
|
||
# Block python runtime. | ||
runtime/bin/python/ | ||
|
||
# Block command file. | ||
runtime/command | ||
|
||
# Block scripts in the root folder except setup.* and createmod.* | ||
*.bat | ||
*.sh | ||
!createmod.sh | ||
!createmod.bat | ||
|
||
# Block .iml files | ||
*.iml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# AnnoyanceFix | ||
_Now using modloader!_ | ||
|
||
## Installation using MultiMC: | ||
|
||
1. Download modloader: https://github.com/coffeenotfound/ModloaderFix-b1.7.3/releases | ||
2. Download this mod: https://github.com/2zqa/AnnoyanceFix/releases | ||
3. Create or edit your beta 1.7.3 instance in MultiMC | ||
4. Click "Add to minecraft.jar" | ||
5. Select modloader and annoyancefix | ||
6. Run and enjoy! 👍 | ||
|
||
## Contributing | ||
|
||
1. Download 1.7.3-LTS (MCP fork): `https://github.com/ModificationStation/1.7.3-LTS/` | ||
2. Fork this repository | ||
3. Clone your own fork: `git clone https://github.com/<your_username>/AnnoyanceFix.git` | ||
4. Run setup from 1.7.3-LTS | ||
5. Add modloader classes to bin/minecraft.jar | ||
6. Run decompile script | ||
7. Run updatemd5 script | ||
8. Copy all files _from_ 1.7.3-LTS _to_ the AnnoyanceFix folder, without overwriting anything | ||
9. Start modding :) | ||
10. Create a pull request when done | ||
|
||
TIP: Use the createmod script to automatically recompile, reobfuscate and create a zip for the mod. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
@REM script not tested, sorry! | ||
recompile.bat | ||
reobfuscate.bat | ||
zip -r -j AnnoyanceFix.zip reobf/minecraft |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#!/bin/bash | ||
./recompile.sh | ||
./reobfuscate.sh | ||
rm AnnoyanceFix.zip | ||
zip -r -j AnnoyanceFix.zip reobf/minecraft |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package net.minecraft.src; | ||
|
||
public class BlockFence extends Block { | ||
public BlockFence(int var1, int var2) { | ||
super(var1, var2, Material.wood); | ||
} | ||
|
||
// public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) { | ||
// if (var1.getBlockId(var2, var3 - 1, var4) == this.blockID) { | ||
// return true; | ||
// } else { | ||
// return !var1.getBlockMaterial(var2, var3 - 1, var4).isSolid() ? false : super.canPlaceBlockAt(var1, var2, var3, var4); | ||
// } | ||
// } | ||
|
||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) { | ||
return AxisAlignedBB.getBoundingBoxFromPool((double)var2, (double)var3, (double)var4, (double)(var2 + 1), (double)((float)var3 + 1.5F), (double)(var4 + 1)); | ||
} | ||
|
||
public boolean isOpaqueCube() { | ||
return false; | ||
} | ||
|
||
public boolean renderAsNormalBlock() { | ||
return false; | ||
} | ||
|
||
public int getRenderType() { | ||
return 11; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
package net.minecraft.src; | ||
|
||
import java.util.ArrayList; | ||
import java.util.Random; | ||
|
||
public class BlockStairs extends Block { | ||
private Block modelBlock; | ||
|
||
protected BlockStairs(int var1, Block var2) { | ||
super(var1, var2.blockIndexInTexture, var2.blockMaterial); | ||
this.modelBlock = var2; | ||
this.setHardness(var2.blockHardness); | ||
this.setResistance(var2.blockResistance / 3.0F); | ||
this.setStepSound(var2.stepSound); | ||
this.setLightOpacity(255); | ||
} | ||
|
||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) { | ||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); | ||
} | ||
|
||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) { | ||
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4); | ||
} | ||
|
||
public boolean isOpaqueCube() { | ||
return false; | ||
} | ||
|
||
public boolean renderAsNormalBlock() { | ||
return false; | ||
} | ||
|
||
public int getRenderType() { | ||
return 10; | ||
} | ||
|
||
public boolean shouldSideBeRendered(IBlockAccess var1, int var2, int var3, int var4, int var5) { | ||
return super.shouldSideBeRendered(var1, var2, var3, var4, var5); | ||
} | ||
|
||
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) { | ||
int var7 = var1.getBlockMetadata(var2, var3, var4); | ||
if (var7 == 0) { | ||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 0.5F, 1.0F); | ||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6); | ||
this.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); | ||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6); | ||
} else if (var7 == 1) { | ||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 1.0F, 1.0F); | ||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6); | ||
this.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); | ||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6); | ||
} else if (var7 == 2) { | ||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 0.5F); | ||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6); | ||
this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 1.0F, 1.0F); | ||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6); | ||
} else if (var7 == 3) { | ||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F); | ||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6); | ||
this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 0.5F, 1.0F); | ||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6); | ||
} | ||
|
||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); | ||
} | ||
|
||
public void randomDisplayTick(World var1, int var2, int var3, int var4, Random var5) { | ||
this.modelBlock.randomDisplayTick(var1, var2, var3, var4, var5); | ||
} | ||
|
||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) { | ||
this.modelBlock.onBlockClicked(var1, var2, var3, var4, var5); | ||
} | ||
|
||
// public void onBlockDestroyedByPlayer(World var1, int var2, int var3, int var4, int var5) { | ||
// this.modelBlock.onBlockDestroyedByPlayer(var1, var2, var3, var4, var5); | ||
// } | ||
|
||
public float getBlockBrightness(IBlockAccess var1, int var2, int var3, int var4) { | ||
return this.modelBlock.getBlockBrightness(var1, var2, var3, var4); | ||
} | ||
|
||
public float getExplosionResistance(Entity var1) { | ||
return this.modelBlock.getExplosionResistance(var1); | ||
} | ||
|
||
public int getRenderBlockPass() { | ||
return this.modelBlock.getRenderBlockPass(); | ||
} | ||
|
||
public int idDropped(int var1, Random var2) { | ||
return this.blockID; | ||
//return Block.blockDiamond.blockID; // debugging | ||
} | ||
|
||
public int quantityDropped(Random var1) { | ||
return this.modelBlock.quantityDropped(var1); | ||
} | ||
|
||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) { | ||
return this.modelBlock.getBlockTextureFromSideAndMetadata(var1, var2); | ||
} | ||
|
||
public int getBlockTextureFromSide(int var1) { | ||
return this.modelBlock.getBlockTextureFromSide(var1); | ||
} | ||
|
||
public int getBlockTexture(IBlockAccess var1, int var2, int var3, int var4, int var5) { | ||
return this.modelBlock.getBlockTexture(var1, var2, var3, var4, var5); | ||
} | ||
|
||
public int tickRate() { | ||
return this.modelBlock.tickRate(); | ||
} | ||
|
||
public AxisAlignedBB getSelectedBoundingBoxFromPool(World var1, int var2, int var3, int var4) { | ||
return this.modelBlock.getSelectedBoundingBoxFromPool(var1, var2, var3, var4); | ||
} | ||
|
||
public void velocityToAddToEntity(World var1, int var2, int var3, int var4, Entity var5, Vec3D var6) { | ||
this.modelBlock.velocityToAddToEntity(var1, var2, var3, var4, var5, var6); | ||
} | ||
|
||
public boolean isCollidable() { | ||
return this.modelBlock.isCollidable(); | ||
} | ||
|
||
public boolean canCollideCheck(int var1, boolean var2) { | ||
return this.modelBlock.canCollideCheck(var1, var2); | ||
} | ||
|
||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) { | ||
return this.modelBlock.canPlaceBlockAt(var1, var2, var3, var4); | ||
} | ||
|
||
public void onBlockAdded(World var1, int var2, int var3, int var4) { | ||
this.onNeighborBlockChange(var1, var2, var3, var4, 0); | ||
this.modelBlock.onBlockAdded(var1, var2, var3, var4); | ||
} | ||
|
||
// public void onBlockRemoval(World var1, int var2, int var3, int var4) { | ||
// this.modelBlock.onBlockRemoval(var1, var2, var3, var4); | ||
// } | ||
|
||
// public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) { | ||
// this.modelBlock.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6); | ||
// } | ||
|
||
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) { | ||
this.modelBlock.onEntityWalking(var1, var2, var3, var4, var5); | ||
} | ||
|
||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) { | ||
this.modelBlock.updateTick(var1, var2, var3, var4, var5); | ||
} | ||
|
||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) { | ||
return this.modelBlock.blockActivated(var1, var2, var3, var4, var5); | ||
} | ||
|
||
// public void onBlockDestroyedByExplosion(World var1, int var2, int var3, int var4) { | ||
// this.modelBlock.onBlockDestroyedByExplosion(var1, var2, var3, var4); | ||
// } | ||
|
||
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) { | ||
int var6 = MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; | ||
if (var6 == 0) { | ||
var1.setBlockMetadataWithNotify(var2, var3, var4, 2); | ||
} | ||
|
||
if (var6 == 1) { | ||
var1.setBlockMetadataWithNotify(var2, var3, var4, 1); | ||
} | ||
|
||
if (var6 == 2) { | ||
var1.setBlockMetadataWithNotify(var2, var3, var4, 3); | ||
} | ||
|
||
if (var6 == 3) { | ||
var1.setBlockMetadataWithNotify(var2, var3, var4, 0); | ||
} | ||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
package net.minecraft.src; | ||
|
||
import java.lang.reflect.Field; | ||
|
||
public class mod_AnnoyanceFix extends BaseMod { | ||
|
||
@Override | ||
public String Version() { | ||
return "AnnoyanceFix v1.1"; | ||
} | ||
|
||
@Override | ||
public void ModsLoaded() { | ||
// Fix axe effectiveness | ||
addEffectiveTools(new Item[] {Item.axeDiamond, Item.axeGold, Item.axeSteel, Item.axeStone, Item.axeWood}, | ||
new Block[] { Block.workbench, Block.stairCompactPlanks, Block.fence, Block.doorWood }); | ||
|
||
// Fix pickaxe effectiveness | ||
addEffectiveTools(new Item[] {Item.pickaxeDiamond, Item.pickaxeGold, Item.pickaxeSteel, Item.pickaxeStone, Item.pickaxeWood}, | ||
new Block[] {Block.stoneOvenActive, Block.stoneOvenIdle, Block.stairCompactCobblestone, | ||
Block.brick, Block.oreRedstone, Block.doorSteel, Block.rail, Block.railDetector, Block.railPowered }); | ||
|
||
} | ||
|
||
/** | ||
* Makes specified blocks break faster using specified tools | ||
* @param effectiveTools tools to be effective against all vulnerableBlocks | ||
* @param vulnerableBlocks blocks that should be broken faster using speficied tools | ||
*/ | ||
public void addEffectiveTools(Item[] effectiveTools, Block[] vulnerableBlocks) { | ||
try { | ||
// Get the blocksEffectiveAgainst field | ||
Field blocksEffectiveAgainstField = ItemTool.class.getDeclaredFields()[0]; | ||
blocksEffectiveAgainstField.setAccessible(true); | ||
|
||
// Make each tool effective against all specified blocks | ||
for (Item tool : effectiveTools) { | ||
Block[] blocksEffectiveAgainstOriginal = (Block[]) blocksEffectiveAgainstField.get(tool); | ||
|
||
Block[] blocksEffectiveAgainst = new Block[blocksEffectiveAgainstOriginal.length + vulnerableBlocks.length]; | ||
|
||
// Add original effective block list to new array | ||
System.arraycopy(blocksEffectiveAgainstOriginal, 0, blocksEffectiveAgainst, 0, | ||
blocksEffectiveAgainstOriginal.length); | ||
|
||
// Add users' effective blocks to the list | ||
System.arraycopy(vulnerableBlocks, 0, blocksEffectiveAgainst, blocksEffectiveAgainstOriginal.length, vulnerableBlocks.length); | ||
|
||
blocksEffectiveAgainstField.set(tool, blocksEffectiveAgainst); | ||
} | ||
|
||
} catch (SecurityException | IllegalArgumentException | IllegalAccessException e) { | ||
e.printStackTrace(); | ||
} | ||
} | ||
} |