001package net.minecraft.world.chunk;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import java.util.List;
006import java.util.Random;
007import net.minecraft.command.IEntitySelector;
008import net.minecraft.entity.Entity;
009import net.minecraft.tileentity.TileEntity;
010import net.minecraft.util.AxisAlignedBB;
011import net.minecraft.world.EnumSkyBlock;
012import net.minecraft.world.World;
013
014public 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}