Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.minecraft.src;
- import net.minecraft.src.Block;
- import net.minecraft.src.BlockDoor;
- import net.minecraft.src.Entity;
- import net.minecraft.src.IBlockAccess;
- import net.minecraft.src.MCHash;
- import net.minecraft.src.Material;
- import net.minecraft.src.MathHelper;
- import net.minecraft.src.Path;
- import net.minecraft.src.PathEntity;
- import net.minecraft.src.PathPoint;
- import java.util.LinkedList;
- import java.util.Iterator;
- public class PathfinderEnh implements Runnable {
- private IBlockAccess worldMap;
- private Path path = new Path();
- private MCHash pointMap = new MCHash();
- private PathPoint[] pathOptions = new PathPoint[32];
- public boolean foundEnd;
- public boolean canClimb = false;
- public boolean canUseLadder = false;
- public boolean isPathing = false;
- public PathEntity t_path;
- public Entity t_ent;
- public Entity t_targ;
- public float t_dist;
- public ChunkCache cc;
- public boolean firstUse = true;
- public boolean tryAgain = false;
- public PathfinderEnh(IBlockAccess var1) {
- this.worldMap = var1;
- }
- public void run() {
- //}
- t_path = createEntityPathTo(t_ent, t_targ, t_dist);
- ((EntityCreature)t_ent).setPathToEntity(t_path);
- isPathing = false;
- if (t_path != null) {
- //System.out.println(t_path.points.length);
- }
- }
- public static PathEntity requestPath() {
- //try transparent way:
- //ent asks for path, insta return 1 node path with ent pos Y+4 to keep it still, start thread
- //then once thread has path, replace fake path with actual path
- return null;
- }
- public PathEntity getPathToEntity(Entity var1, Entity var2, float var3) {
- return getPathToEntity(var1, var2, var3, false);
- }
- public PathEntity getPathToEntity(Entity var1, Entity var2, float var3, boolean canClimb) {
- boolean threaded = true;
- tryAgain = false;
- /*if (mod_PathingActivated.lastPathfindTime < System.currentTimeMillis()) {
- mod_PathingActivated.lastPathfindTime = System.currentTimeMillis() + 200;
- } else {
- tryAgain = true;
- PathPoint points[] = new PathPoint[1];
- points[0] = new PathPoint((int)(var1.posX-0.5), (int)(var1.posY + 4D), (int)(var1.posZ-0.5));
- return new PathEntity(points);
- }*/
- mod_PathingActivated.PFCount++;
- if (!isPathing) {
- isPathing = true;
- //PathfinderEnh pf = new PathfinderEnh(var14);
- if (var1 instanceof EntityHooks) {
- this.canClimb = canClimb;
- //this.worldMap = var14;
- this.t_ent = var1;
- this.t_targ = var2;
- this.t_dist = var3;
- this.t_path = null;
- if (t_ent instanceof EntityHooks && ((EntityHooks)t_ent).team == 1 || mod_PathingActivated.hostilesUseLadders) {
- this.canUseLadder = true;
- }
- int var4 = MathHelper.floor_double(t_ent.posX);
- int var5 = MathHelper.floor_double(t_ent.posY);
- int var6 = MathHelper.floor_double(t_ent.posZ);
- int var7 = (int)(t_dist + 16.0F);
- int var8 = var4 - var7;
- int var9 = var5 - var7;
- int var10 = var6 - var7;
- int var11 = var4 + var7;
- int var12 = var5 + var7;
- int var13 = var6 + var7;
- //if (firstUse) {
- //firstUse = false;
- //System.out.println("pf chunkcache!");
- //threaded method!
- if (threaded) {
- if (mod_PathingActivated.lastWorldCacheTime < System.currentTimeMillis() || mod_PathingActivated.worldCache == null) {
- mod_PathingActivated.lastWorldCacheTime = System.currentTimeMillis() + 5000;
- //mod_PathingActivated.worldCache = new ChunkCache(ModLoader.getMinecraftInstance().theWorld, var8, var9, var10, var11, var12, var13);
- }
- //worldMap = mod_PathingActivated.worldCache;
- worldMap = ModLoader.getMinecraftInstance().theWorld;
- (new Thread(this)).start();
- PathPoint points[] = new PathPoint[1];
- points[0] = new PathPoint((int)(var1.posX-0.5), (int)(var1.posY + 4D), (int)(var1.posZ-0.5));
- return new PathEntity(points);
- } else {
- worldMap = new ChunkCache(ModLoader.getMinecraftInstance().theWorld, var8, var9, var10, var11, var12, var13);
- //worldMap = t_ent.worldObj;
- t_path = createEntityPathTo(t_ent, t_targ, t_dist);
- //((EntityCreature)t_ent).setPathToEntity(t_path);
- isPathing = false;
- }
- //non threaded method
- //worldMap = t_ent.worldObj;
- //t_path = createEntityPathTo(t_ent, t_targ, t_dist);
- //((EntityCreature)t_ent).setPathToEntity(t_path);
- //isPathing = false;
- //TRIM PATHFIND CODE!!
- //http://pastebin.com/6bGdzFBJ
- }
- //return ((EntityHooks)var1).pf.createEntityPathTo(var1, var2, var3);
- } else {
- }
- return t_path;
- }
- public PathEntity getEntityPathToXYZ(Entity var1, int var2, int var3, int var4, float var5) {
- int var6 = MathHelper.floor_double(var1.posX);
- int var7 = MathHelper.floor_double(var1.posY);
- int var8 = MathHelper.floor_double(var1.posZ);
- int var9 = (int)(var5 + 8.0F);
- int var10 = var6 - var9;
- int var11 = var7 - var9;
- int var12 = var8 - var9;
- int var13 = var6 + var9;
- int var14 = var7 + var9;
- int var15 = var8 + var9;
- ChunkCache var16 = new ChunkCache(ModLoader.getMinecraftInstance().theWorld, var10, var11, var12, var13, var14, var15);
- PathfinderEnh pf = new PathfinderEnh(var16);
- pf.canClimb = false;
- return (pf).createEntityPathTo(var1, var2, var3, var4, var5);
- }
- public PathEntity createEntityPathTo(Entity var1, Entity var2, float var3) {
- return this.createEntityPathTo(var1, var2.posX, var2.boundingBox.minY, var2.posZ, var3);
- }
- public PathEntity createEntityPathTo(Entity var1, int var2, int var3, int var4, float var5) {
- return this.createEntityPathTo(var1, (double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F), var5);
- }
- private PathEntity createEntityPathTo(Entity var1, double var2, double var4, double var6, float var8) {
- this.path.clearPath();
- this.pointMap.clearMap();
- foundEnd = false;
- PathPoint var9 = this.openPoint(MathHelper.floor_double(var1.boundingBox.minX), MathHelper.floor_double(var1.boundingBox.minY), MathHelper.floor_double(var1.boundingBox.minZ));
- PathPoint var10 = this.openPoint(MathHelper.floor_double(var2 - (double)(var1.width / 2.0F)), MathHelper.floor_double(var4), MathHelper.floor_double(var6 - (double)(var1.width / 2.0F)));
- PathPoint var11 = new PathPoint(MathHelper.floor_float(var1.width + 1.0F), MathHelper.floor_float(var1.height + 1.0F), MathHelper.floor_float(var1.width + 1.0F));
- PathEntity var12 = this.addToPath(var1, var9, var10, var11, var8);
- if (var12 != null) {
- var12.foundEnd = foundEnd;
- }
- try {
- //Thread.sleep(500L);
- } catch (Throwable ex) {
- }
- var12 = simplifyPath(var12, var11);
- return var12;
- }
- private PathEntity addToPath(Entity var1, PathPoint var2, PathPoint var3, PathPoint var4, float var5) {
- var2.totalPathDistance = 0.0F;
- var2.distanceToNext = var2.distanceTo(var3);
- var2.distanceToTarget = var2.distanceToNext;
- this.path.clearPath();
- this.path.addPoint(var2);
- PathPoint var6 = var2;
- while(!this.path.isPathEmpty()) {
- PathPoint var7 = this.path.dequeue();
- if(var7.equals(var3)) {
- return this.createEntityPath(var2, var3);
- }
- if(var7.distanceTo(var3) < var6.distanceTo(var3)) {
- var6 = var7;
- }
- var7.isFirst = true;
- int var8 = this.findPathOptions(var1, var7, var4, var3, var5);
- for(int var9 = 0; var9 < var8; ++var9) {
- PathPoint var10 = this.pathOptions[var9];
- float var11 = var7.totalPathDistance + var7.distanceTo(var10);
- if(!var10.isAssigned() || var11 < var10.totalPathDistance) {
- var10.previous = var7;
- var10.totalPathDistance = var11;
- var10.distanceToNext = var10.distanceTo(var3);
- if(var10.isAssigned()) {
- this.path.changeDistance(var10, var10.totalPathDistance + var10.distanceToNext);
- } else {
- var10.distanceToTarget = var10.totalPathDistance + var10.distanceToNext;
- this.path.addPoint(var10);
- }
- }
- }
- }
- if (Math.abs(var3.xCoord - var6.xCoord) < 2 && Math.abs(var3.yCoord - var6.yCoord) < 2 && Math.abs(var3.zCoord - var6.zCoord) < 2) {
- foundEnd = true;
- }
- if(var6 == var2) {
- return null;
- } else {
- return this.createEntityPath(var2, var6);
- }
- }
- private int findPathOptions(Entity var1, PathPoint var2, PathPoint var3, PathPoint var4, float var5) {
- int var6 = 0;
- byte var7 = 0;
- if(this.getVerticalOffset(var1, var2.xCoord, var2.yCoord + 1, var2.zCoord, var3) == 1) {
- var7 = 1;
- }
- PathPoint var8 = this.getSafePoint(var1, var2.xCoord, var2.yCoord, var2.zCoord + 1, var3, var7);
- PathPoint var9 = this.getSafePoint(var1, var2.xCoord - 1, var2.yCoord, var2.zCoord, var3, var7);
- PathPoint var10 = this.getSafePoint(var1, var2.xCoord + 1, var2.yCoord, var2.zCoord, var3, var7);
- PathPoint var11 = this.getSafePoint(var1, var2.xCoord, var2.yCoord, var2.zCoord - 1, var3, var7);
- if(var8 != null && !var8.isFirst && var8.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = var8;
- }
- if(var9 != null && !var9.isFirst && var9.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = var9;
- }
- if(var10 != null && !var10.isFirst && var10.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = var10;
- }
- if(var11 != null && !var11.isFirst && var11.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = var11;
- }
- if (canClimb) {
- PathPoint vvar8 = this.getClimbPoint(var1, var2.xCoord, var2.yCoord, var2.zCoord + 1, var3, var7, var2.xCoord, var2.zCoord);
- PathPoint vvar9 = this.getClimbPoint(var1, var2.xCoord - 1, var2.yCoord, var2.zCoord, var3, var7, var2.xCoord, var2.zCoord);
- PathPoint vvar10 = this.getClimbPoint(var1, var2.xCoord + 1, var2.yCoord, var2.zCoord, var3, var7, var2.xCoord, var2.zCoord);
- PathPoint vvar11 = this.getClimbPoint(var1, var2.xCoord, var2.yCoord, var2.zCoord - 1, var3, var7, var2.xCoord, var2.zCoord);
- if(vvar8 != null && !vvar8.isFirst && vvar8.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = vvar8;
- }
- if(vvar9 != null && !vvar9.isFirst && vvar9.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = vvar9;
- }
- if(vvar10 != null && !vvar10.isFirst && vvar10.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = vvar10;
- }
- if(vvar11 != null && !vvar11.isFirst && vvar11.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = vvar11;
- }
- }
- if (canUseLadder) {
- if (getBlockId(var2.xCoord, var2.yCoord, var2.zCoord) == Block.ladder.blockID) {
- PathPoint vvar8 = this.getLadderPoint(var1, var2.xCoord, var2.yCoord, var2.zCoord + 1, var3, var7, var2.xCoord, var2.zCoord);
- PathPoint vvar9 = this.getLadderPoint(var1, var2.xCoord - 1, var2.yCoord, var2.zCoord, var3, var7, var2.xCoord, var2.zCoord);
- PathPoint vvar10 = this.getLadderPoint(var1, var2.xCoord + 1, var2.yCoord, var2.zCoord, var3, var7, var2.xCoord, var2.zCoord);
- PathPoint vvar11 = this.getLadderPoint(var1, var2.xCoord, var2.yCoord, var2.zCoord - 1, var3, var7, var2.xCoord, var2.zCoord);
- if(vvar8 != null && !vvar8.isFirst && vvar8.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = vvar8;
- }
- if(vvar9 != null && !vvar9.isFirst && vvar9.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = vvar9;
- }
- if(vvar10 != null && !vvar10.isFirst && vvar10.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = vvar10;
- }
- if(vvar11 != null && !vvar11.isFirst && vvar11.distanceTo(var4) < var5) {
- this.pathOptions[var6++] = vvar11;
- }
- }
- }
- return var6;
- }
- private PathPoint getLadderPoint(Entity var1, int x, int y, int z, PathPoint var5, int var6, int origX, int origZ) {
- PathPoint var7 = null;
- if(this.getVerticalOffset(var1, x, y, z, var5) == 1) {
- var7 = this.openPoint(x, y, z);
- }
- if(var7 == null && var6 > 0 && this.getVerticalOffset(var1, x, y + var6, z, var5) == 1) {
- var7 = this.openPoint(x, y + var6, z);
- y += var6;
- }
- if(var7 == null) {
- int var8 = 0;
- int var9 = 0;
- int var10 = 0;
- //while(y > 0 && y < 128 && (worldMap.getBlockId(x, y + 1, z)) == Block.ladder.blockID && (var10 = this.getVerticalOffset(var1, origX, y + 1, origZ, var5)) == 1) {
- while(y > 0 && y < 128 && ((var9 = this.getVerticalOffset(var1, x, y + 1, z, var5)) == 0) && (getBlockId(origX, y + 1, origZ)) == Block.ladder.blockID) {
- var10 = this.getVerticalOffset(var1, origX, y + 1, origZ, var5);
- ++var8;
- /*if(var8 >= 3) {
- return null;
- }*/
- ++y;
- if(y > 0 && y < 128) {
- var7 = this.openPoint(x, y, z);
- }
- }
- if (var10 != 1) {
- return null;
- }
- if(var9 == -2) {
- return null;
- }
- }
- return var7;
- }
- private PathPoint getClimbPoint(Entity var1, int x, int y, int z, PathPoint var5, int var6, int origX, int origZ) {
- PathPoint var7 = null;
- if(this.getVerticalOffset(var1, x, y, z, var5) == 1) {
- var7 = this.openPoint(x, y, z);
- }
- if(var7 == null && var6 > 0 && this.getVerticalOffset(var1, x, y + var6, z, var5) == 1) {
- var7 = this.openPoint(x, y + var6, z);
- y += var6;
- }
- if(var7 == null && canClimb) {
- int var8 = 0;
- int var9 = 0;
- int var10 = 0;
- //while(y > 0 && y < 128 && (worldMap.getBlockId(x, y + 1, z)) == Block.ladder.blockID && (var10 = this.getVerticalOffset(var1, origX, y + 1, origZ, var5)) == 1) {
- while(y > 0 && y < 128 && ((var9 = this.getVerticalOffset(var1, x, y + 1, z, var5)) == 0) && (var10 = this.getVerticalOffset(var1, origX, y + 1, origZ, var5)) == 1) {
- //;
- ++var8;
- if(var8 >= 3) {
- return null;
- }
- ++y;
- if(y > 0 && y < 128) {
- var7 = this.openPoint(x, y, z);
- }
- }
- if (var10 != 1) {
- return null;
- }
- if(var9 == -2) {
- return null;
- }
- }
- return var7;
- }
- private PathPoint getSafePoint(Entity var1, int var2, int var3, int var4, PathPoint var5, int var6) {
- PathPoint var7 = null;
- if(this.getVerticalOffset(var1, var2, var3, var4, var5) == 1) {
- var7 = this.openPoint(var2, var3, var4);
- }
- if(var7 == null && var6 > 0 && this.getVerticalOffset(var1, var2, var3 + var6, var4, var5) == 1) {
- var7 = this.openPoint(var2, var3 + var6, var4);
- var3 += var6;
- }
- if(var7 != null) {
- int var8 = 0;
- int var9 = 0;
- while(var3 > 0 && (var9 = this.getVerticalOffset(var1, var2, var3 - 1, var4, var5)) == 1) {
- ++var8;
- if(var8 >= 4) {
- return null;
- }
- --var3;
- if(var3 > 0) {
- var7 = this.openPoint(var2, var3, var4);
- }
- }
- if(var9 == -2) {
- return null;
- }
- }
- return var7;
- }
- private final PathPoint openPoint(int var1, int var2, int var3) {
- int var4 = PathPoint.func_22329_a(var1, var2, var3);
- PathPoint var5 = (PathPoint)this.pointMap.lookup(var4);
- if(var5 == null) {
- var5 = new PathPoint(var1, var2, var3);
- this.pointMap.addKey(var4, var5);
- }
- return var5;
- }
- private int getVerticalOffset(Entity var1, int var2, int var3, int var4, PathPoint var5) {
- for(int var6 = var2; var6 < var2 + var5.xCoord; ++var6) {
- for(int var7 = var3; var7 < var3 + var5.yCoord; ++var7) {
- for(int var8 = var4; var8 < var4 + var5.zCoord; ++var8) {
- int var9 = getBlockId(var6, var7, var8);
- if(var9 > 0) {
- if(var9 != Block.doorSteel.blockID && var9 != Block.doorWood.blockID) {
- if (var9 == Block.fence.blockID) {
- return -2;
- }
- if (var9 == Block.pressurePlatePlanks.blockID || var9 == Block.pressurePlateStone.blockID) {
- return 1;
- }
- Material var11 = Block.blocksList[var9].blockMaterial;
- if(var11.getIsSolid()) {
- return 0;
- }
- if(var11 == Material.water) {
- return -1;
- }
- if(var11 == Material.lava) {
- return -2;
- }
- } else {
- int var10 = getBlockMetadata(var6, var7, var8);
- if(!BlockDoor.isOpen(var10)) {
- return 0;
- }
- }
- }
- }
- }
- }
- return 1;
- }
- private PathEntity createEntityPath(PathPoint var1, PathPoint var2) {
- int var3 = 1;
- PathPoint var4;
- for(var4 = var2; var4.previous != null; var4 = var4.previous) {
- ++var3;
- }
- PathPoint[] var5 = new PathPoint[var3];
- var4 = var2;
- --var3;
- for(var5[var3] = var2; var4.previous != null; var5[var3] = var4) {
- var4 = var4.previous;
- --var3;
- }
- return new PathEntity(var5);
- }
- private PathEntity simplifyPath(PathEntity pathentity, PathPoint pathpoint)
- {
- if(pathentity == null)
- {
- return pathentity;
- }
- LinkedList linkedlist = new LinkedList();
- PathPoint pathpoint1 = null;
- PathPoint pathpoint2 = null;
- PathPoint pathpoint3 = null;
- //PathPoint apathpoint[] = (PathPoint)pathentity.points;
- PathPoint apathpoint[] = pathentity.points;
- int j = apathpoint.length;
- for(int k = 0; k < j; k++)
- {
- PathPoint pathpoint4 = apathpoint[k];
- if(pathpoint1 == null)
- {
- pathpoint1 = pathpoint4;
- linkedlist.add(pathpoint4);
- continue;
- }
- if(pathpoint2 == null)
- {
- if(pathpoint1.yCoord != pathpoint4.yCoord)
- {
- pathpoint1 = pathpoint4;
- linkedlist.add(pathpoint4);
- } else
- {
- pathpoint2 = pathpoint4;
- }
- continue;
- }
- if(pathpoint2.yCoord != pathpoint4.yCoord)
- {
- linkedlist.add(pathpoint2);
- linkedlist.add(pathpoint4);
- pathpoint1 = pathpoint4;
- pathpoint2 = null;
- continue;
- }
- int l = pathpoint4.xCoord - pathpoint1.xCoord;
- int i1 = pathpoint4.zCoord - pathpoint1.zCoord;
- if(Math.abs(l) < Math.abs(i1))
- {
- float f = 0.0F;
- float f2 = (float)l / (float)Math.abs(i1);
- byte byte0 = 1;
- if(i1 < 0)
- {
- byte0 = -1;
- }
- for(int j1 = 1; j1 < Math.abs(i1); j1++)
- {
- if(getVerticalOffset(null, pathpoint1.xCoord + (int)f, pathpoint1.yCoord, pathpoint1.zCoord + j1 * byte0, pathpoint) != 1 || getVerticalOffset(null, pathpoint1.xCoord + (int)f, pathpoint1.yCoord - 1, pathpoint1.zCoord + j1 * byte0, pathpoint) == 1 || getVerticalOffset(null, pathpoint1.xCoord + (int)f + 1, pathpoint1.yCoord, pathpoint1.zCoord + j1 * byte0, pathpoint) != 1 || getVerticalOffset(null, pathpoint1.xCoord + (int)f + 1, pathpoint1.yCoord - 1, pathpoint1.zCoord + j1 * byte0, pathpoint) == 1 || getVerticalOffset(null, (pathpoint1.xCoord + (int)f) - 1, pathpoint1.yCoord, pathpoint1.zCoord + j1 * byte0, pathpoint) != 1 || getVerticalOffset(null, (pathpoint1.xCoord + (int)f) - 1, pathpoint1.yCoord - 1, pathpoint1.zCoord + j1 * byte0, pathpoint) == 1)
- {
- pathpoint1 = pathpoint2;
- linkedlist.add(pathpoint2);
- pathpoint2 = pathpoint4;
- } else
- {
- f += f2;
- }
- }
- } else
- {
- float f1 = 0.0F;
- float f3 = (float)i1 / (float)Math.abs(l);
- byte byte1 = 1;
- if(l < 0)
- {
- byte1 = -1;
- }
- for(int k1 = 1; k1 < Math.abs(l); k1++)
- {
- if(getVerticalOffset(null, pathpoint1.xCoord + k1 * byte1, pathpoint1.yCoord, pathpoint1.zCoord + (int)f1, pathpoint) != 1 || getVerticalOffset(null, pathpoint1.xCoord + k1 * byte1, pathpoint1.yCoord - 1, pathpoint1.zCoord + (int)f1, pathpoint) == 1 || getVerticalOffset(null, pathpoint1.xCoord + k1 * byte1, pathpoint1.yCoord, pathpoint1.zCoord + (int)f1 + 1, pathpoint) != 1 || getVerticalOffset(null, pathpoint1.xCoord + k1 * byte1, pathpoint1.yCoord - 1, pathpoint1.zCoord + (int)f1 + 1, pathpoint) == 1 || getVerticalOffset(null, pathpoint1.xCoord + k1 * byte1, pathpoint1.yCoord, (pathpoint1.zCoord + (int)f1) - 1, pathpoint) != 1 || getVerticalOffset(null, pathpoint1.xCoord + k1 * byte1, pathpoint1.yCoord - 1, (pathpoint1.zCoord + (int)f1) - 1, pathpoint) == 1)
- {
- pathpoint1 = pathpoint2;
- linkedlist.add(pathpoint2);
- pathpoint2 = pathpoint4;
- } else
- {
- f1 += f3;
- }
- }
- }
- pathpoint3 = pathpoint4;
- }
- if(pathpoint3 != null)
- {
- linkedlist.add(pathpoint3);
- } else
- if(pathpoint2 != null)
- {
- linkedlist.add(pathpoint2);
- }
- int i = 0;
- PathPoint apathpoint1[] = new PathPoint[linkedlist.size()];
- for(Iterator iterator = linkedlist.iterator(); iterator.hasNext();)
- {
- PathPoint pathpoint5 = (PathPoint)iterator.next();
- apathpoint1[i++] = pathpoint5;
- }
- return new PathEntity(apathpoint1);
- }
- private int getBlockId(int x, int y, int z) {
- if (!ModLoader.getMinecraftInstance().theWorld.checkChunksExist(x, 0, z , x, 128, z)) return 10;
- return ModLoader.getMinecraftInstance().theWorld.getBlockId(x, y, z);
- }
- private int getBlockMetadata(int x, int y, int z) {
- if (!ModLoader.getMinecraftInstance().theWorld.checkChunksExist(x, 0, z , x, 128, z)) return 0;
- return ModLoader.getMinecraftInstance().theWorld.getBlockMetadata(x, y, z);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement