001    package net.minecraft.world.chunk;
002    
003    import cpw.mods.fml.relauncher.Side;
004    import cpw.mods.fml.relauncher.SideOnly;
005    import java.util.List;
006    import java.util.Random;
007    import net.minecraft.command.IEntitySelector;
008    import net.minecraft.entity.Entity;
009    import net.minecraft.tileentity.TileEntity;
010    import net.minecraft.util.AxisAlignedBB;
011    import net.minecraft.world.EnumSkyBlock;
012    import net.minecraft.world.World;
013    
014    public class EmptyChunk extends Chunk
015    {
016        public EmptyChunk(World par1World, int par2, int par3)
017        {
018            super(par1World, par2, par3);
019        }
020    
021        /**
022         * Checks whether the chunk is at the X/Z location specified
023         */
024        public boolean isAtLocation(int par1, int par2)
025        {
026            return par1 == this.xPosition && par2 == this.zPosition;
027        }
028    
029        /**
030         * Returns the value in the height map at this x, z coordinate in the chunk
031         */
032        public int getHeightValue(int par1, int par2)
033        {
034            return 0;
035        }
036    
037        /**
038         * Generates the initial skylight map for the chunk upon generation or load.
039         */
040        public void generateSkylightMap() {}
041    
042        @SideOnly(Side.CLIENT)
043    
044        /**
045         * Generates the height map for a chunk from scratch
046         */
047        public void generateHeightMap() {}
048    
049        /**
050         * Return the ID of a block in the chunk.
051         */
052        public int getBlockID(int par1, int par2, int par3)
053        {
054            return 0;
055        }
056    
057        public int getBlockLightOpacity(int par1, int par2, int par3)
058        {
059            return 255;
060        }
061    
062        /**
063         * Sets a blockID of a position within a chunk with metadata. Args: x, y, z, blockID, metadata
064         */
065        public boolean setBlockIDWithMetadata(int par1, int par2, int par3, int par4, int par5)
066        {
067            return true;
068        }
069    
070        /**
071         * Sets a blockID for a position in the chunk. Args: x, y, z, blockID
072         */
073        public boolean setBlockID(int par1, int par2, int par3, int par4)
074        {
075            return true;
076        }
077    
078        /**
079         * Return the metadata corresponding to the given coordinates inside a chunk.
080         */
081        public int getBlockMetadata(int par1, int par2, int par3)
082        {
083            return 0;
084        }
085    
086        /**
087         * Set the metadata of a block in the chunk
088         */
089        public boolean setBlockMetadata(int par1, int par2, int par3, int par4)
090        {
091            return false;
092        }
093    
094        /**
095         * Gets the amount of light saved in this block (doesn't adjust for daylight)
096         */
097        public int getSavedLightValue(EnumSkyBlock par1EnumSkyBlock, int par2, int par3, int par4)
098        {
099            return 0;
100        }
101    
102        /**
103         * Sets the light value at the coordinate. If enumskyblock is set to sky it sets it in the skylightmap and if its a
104         * block then into the blocklightmap. Args enumSkyBlock, x, y, z, lightValue
105         */
106        public void setLightValue(EnumSkyBlock par1EnumSkyBlock, int par2, int par3, int par4, int par5) {}
107    
108        /**
109         * Gets the amount of light on a block taking into account sunlight
110         */
111        public int getBlockLightValue(int par1, int par2, int par3, int par4)
112        {
113            return 0;
114        }
115    
116        /**
117         * Adds an entity to the chunk. Args: entity
118         */
119        public void addEntity(Entity par1Entity) {}
120    
121        /**
122         * removes entity using its y chunk coordinate as its index
123         */
124        public void removeEntity(Entity par1Entity) {}
125    
126        /**
127         * Removes entity at the specified index from the entity array.
128         */
129        public void removeEntityAtIndex(Entity par1Entity, int par2) {}
130    
131        /**
132         * Returns whether is not a block above this one blocking sight to the sky (done via checking against the heightmap)
133         */
134        public boolean canBlockSeeTheSky(int par1, int par2, int par3)
135        {
136            return false;
137        }
138    
139        /**
140         * Gets the TileEntity for a given block in this chunk
141         */
142        public TileEntity getChunkBlockTileEntity(int par1, int par2, int par3)
143        {
144            return null;
145        }
146    
147        /**
148         * Adds a TileEntity to a chunk
149         */
150        public void addTileEntity(TileEntity par1TileEntity) {}
151    
152        /**
153         * Sets the TileEntity for a given block in this chunk
154         */
155        public void setChunkBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity) {}
156    
157        /**
158         * Removes the TileEntity for a given block in this chunk
159         */
160        public void removeChunkBlockTileEntity(int par1, int par2, int par3) {}
161    
162        /**
163         * Called when this Chunk is loaded by the ChunkProvider
164         */
165        public void onChunkLoad() {}
166    
167        /**
168         * Called when this Chunk is unloaded by the ChunkProvider
169         */
170        public void onChunkUnload() {}
171    
172        /**
173         * Sets the isModified flag for this Chunk
174         */
175        public void setChunkModified() {}
176    
177        /**
178         * Fills the given list of all entities that intersect within the given bounding box that aren't the passed entity
179         * Args: entity, aabb, listToFill
180         */
181        public void getEntitiesWithinAABBForEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB, List par3List) {}
182    
183        /**
184         * Gets all entities that can be assigned to the specified class. Args: entityClass, aabb, listToFill
185         */
186        public void getEntitiesOfTypeWithinAAAB(Class par1Class, AxisAlignedBB par2AxisAlignedBB, List par3List, IEntitySelector par4IEntitySelector) {}
187    
188        /**
189         * Returns true if this Chunk needs to be saved
190         */
191        public boolean needsSaving(boolean par1)
192        {
193            return false;
194        }
195    
196        public Random getRandomWithSeed(long par1)
197        {
198            return new Random(this.worldObj.getSeed() + (long)(this.xPosition * this.xPosition * 4987142) + (long)(this.xPosition * 5947611) + (long)(this.zPosition * this.zPosition) * 4392871L + (long)(this.zPosition * 389711) ^ par1);
199        }
200    
201        public boolean isEmpty()
202        {
203            return true;
204        }
205    
206        /**
207         * Returns whether the ExtendedBlockStorages containing levels (in blocks) from arg 1 to arg 2 are fully empty
208         * (true) or not (false).
209         */
210        public boolean getAreLevelsEmpty(int par1, int par2)
211        {
212            return true;
213        }
214    }