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    }