001 package net.minecraft.village;
002
003 public class VillageDoorInfo
004 {
005 public final int posX;
006 public final int posY;
007 public final int posZ;
008 public final int insideDirectionX;
009 public final int insideDirectionZ;
010 public int lastActivityTimestamp;
011 public boolean isDetachedFromVillageFlag = false;
012 private int doorOpeningRestrictionCounter = 0;
013
014 public VillageDoorInfo(int par1, int par2, int par3, int par4, int par5, int par6)
015 {
016 this.posX = par1;
017 this.posY = par2;
018 this.posZ = par3;
019 this.insideDirectionX = par4;
020 this.insideDirectionZ = par5;
021 this.lastActivityTimestamp = par6;
022 }
023
024 /**
025 * Returns the squared distance between this door and the given coordinate.
026 */
027 public int getDistanceSquared(int par1, int par2, int par3)
028 {
029 int var4 = par1 - this.posX;
030 int var5 = par2 - this.posY;
031 int var6 = par3 - this.posZ;
032 return var4 * var4 + var5 * var5 + var6 * var6;
033 }
034
035 /**
036 * Get the square of the distance from a location 2 blocks away from the door considered 'inside' and the given
037 * arguments
038 */
039 public int getInsideDistanceSquare(int par1, int par2, int par3)
040 {
041 int var4 = par1 - this.posX - this.insideDirectionX;
042 int var5 = par2 - this.posY;
043 int var6 = par3 - this.posZ - this.insideDirectionZ;
044 return var4 * var4 + var5 * var5 + var6 * var6;
045 }
046
047 public int getInsidePosX()
048 {
049 return this.posX + this.insideDirectionX;
050 }
051
052 public int getInsidePosY()
053 {
054 return this.posY;
055 }
056
057 public int getInsidePosZ()
058 {
059 return this.posZ + this.insideDirectionZ;
060 }
061
062 public boolean isInside(int par1, int par2)
063 {
064 int var3 = par1 - this.posX;
065 int var4 = par2 - this.posZ;
066 return var3 * this.insideDirectionX + var4 * this.insideDirectionZ >= 0;
067 }
068
069 public void resetDoorOpeningRestrictionCounter()
070 {
071 this.doorOpeningRestrictionCounter = 0;
072 }
073
074 public void incrementDoorOpeningRestrictionCounter()
075 {
076 ++this.doorOpeningRestrictionCounter;
077 }
078
079 public int getDoorOpeningRestrictionCounter()
080 {
081 return this.doorOpeningRestrictionCounter;
082 }
083 }