コード例 #1
0
        /// <summary>
        /// Update which block ID the furnace is using depending on whether or not it is burning
        /// </summary>
        public static void UpdateFurnaceBlockState(bool par0, World par1World, int par2, int par3, int par4)
        {
            int        i          = par1World.GetBlockMetadata(par2, par3, par4);
            TileEntity tileentity = par1World.GetBlockTileEntity(par2, par3, par4);

            KeepFurnaceInventory = true;

            if (par0)
            {
                par1World.SetBlockWithNotify(par2, par3, par4, Block.StoneOvenActive.BlockID);
            }
            else
            {
                par1World.SetBlockWithNotify(par2, par3, par4, Block.StoneOvenIdle.BlockID);
            }

            KeepFurnaceInventory = false;
            par1World.SetBlockMetadataWithNotify(par2, par3, par4, i);

            if (tileentity != null)
            {
                tileentity.Validate();
                par1World.SetBlockTileEntity(par2, par3, par4, tileentity);
            }
        }
コード例 #2
0
        /// <summary>
        /// Sets the TileEntity for a given block in this chunk
        /// </summary>
        public virtual void SetChunkBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity)
        {
            ChunkPosition chunkposition = new ChunkPosition(par1, par2, par3);

            par4TileEntity.WorldObj = WorldObj;
            par4TileEntity.XCoord   = XPosition * 16 + par1;
            par4TileEntity.YCoord   = par2;
            par4TileEntity.ZCoord   = ZPosition * 16 + par3;

            if (GetBlockID(par1, par2, par3) == 0 || !(Block.BlocksList[GetBlockID(par1, par2, par3)] is BlockContainer))
            {
                return;
            }
            else
            {
                par4TileEntity.Validate();
                ChunkTileEntityMap[chunkposition] = par4TileEntity;
                return;
            }
        }